我正在使用以下代码托管服务:
// Set up the test service
testServiceHost = new WebServiceHost(typeof(TestTrelloService), testServiceAddress);
testServiceHost.Open();
我正在发送一个带有RestSharp的PUT到这样的方法:
[OperationContract]
[WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "cards/{cardId}?key={key}")]
public void UpdateCard(string key, string cardId, Card updatedCard)
{
// ...
}
key
和cardId
来自url / querystring,updatedCard是请求正文(s JSON)。
如果我的Card类看起来像这样,一切正常:
public class Card
{
public string id { get; set; }
// ...
}
正文中传递的JSON数据被正确反序列化为Card
对象,并设置了id
属性。
但是,我希望我的班级在房产上有不同的套管。它实际上看起来像这样:
public class Card
{
public string Id { get; set; }
}
然而,这不起作用。我尝试添加各种属性来尝试控制它(包括[DataMember(Name="id")]
),但似乎没有任何效果。
有没有办法可以控制为WebInvoke
/ service方法完成的JSON反序列化的属性名称?
答案 0 :(得分:2)
好吧,现在我觉得自己很蹩脚......我修好了!
[DataContract]
public class Card
{
[DataMember(Name = "id")]
public string Id { get; set; }
}
我错过了DataContract
属性,这似乎是阅读DataMember
属性所必需的!