Общая десериализация WCF JSON

Я немного новичок в WCF и постараюсь четко описать, что я пытаюсь сделать.

У меня есть веб-сервис WCF, который использует запросы JSON. Я делаю нормально отправку / получение JSON по большей части. Например, следующий код работает хорошо и как ожидалось.

JSON отправил:

{ "guy": {"FirstName":"Dave"} }

WCF:

    [DataContract]
    public class SomeGuy
    {
        [DataMember]
        public string FirstName { get; set; }
    }

    [OperationContract]
    [WebInvoke(Method = "POST",
               BodyStyle = WebMessageBodyStyle.WrappedRequest,
               RequestFormat = WebMessageFormat.Json,
               ResponseFormat = WebMessageFormat.Json)]
    public string Register(SomeGuy guy)
    {
        return guy.FirstName;
    }

Это возвращает объект JSON с "Dave", как и ожидалось. Проблема в том, что я не всегда могу гарантировать, что полученный JSON будет точно соответствовать членам моего DataContract. Например, JSON:

{ "guy": {"firstname":"Dave"} }

не будет правильно сериализован, потому что регистр не совпадает. guy.FirstName будет нулевым. Такое поведение имеет смысл, но я не знаю, как обойти это. Нужно ли принудительно указывать имена полей на клиенте или есть способ согласования на стороне сервера?

Возможно связанный вопрос: могу ли я принять и сериализовать универсальный объект JSON в StringDictionary или какую-то простую структуру значения ключа? Поэтому независимо от того, какие имена полей отправляются в JSON, я могу получить доступ к именам и значениям, которые были отправлены мне? Прямо сейчас, единственный способ, которым я могу прочитать данные, которые я получаю, - если они точно соответствуют предопределенному DataContract.

Ответы на вопрос(5)

Ваш ответ на вопрос