C# OData[JsonConverter]属性序列化
当通过EntitySetController为OData提供服务时,我尝试使用默认的.Net序列化方法。 使用时:C# OData[JsonConverter]属性序列化,c#,asp.net-web-api,json.net,odata,json,C#,Asp.net Web Api,Json.net,Odata,Json,当通过EntitySetController为OData提供服务时,我尝试使用默认的.Net序列化方法。 使用时: [DataContract] public class TestClassA { public int Id { get; set; } public string Stam { get; set; } [DataMember] public TestClassB TestClassB { get; set; } } public class Te
[DataContract]
public class TestClassA
{
public int Id { get; set; }
public string Stam { get; set; }
[DataMember]
public TestClassB TestClassB { get; set; }
}
public class TestClassB
{
public int Ids { get; set; }
public string Name { get; set; }
}
调用GET的结果
{
"odata.metadata":"http://**MyHost**/odata/$metadata#TestClassA","value":[
{
"TestClassB":{
"Ids":110,"Name":"Bla"
}
}
]
}
这对DataContract属性非常有用但是,尝试使用[JsonConverter]属性时:
public class TestClassA
{
public int Id { get; set; }
public string Stam { get; set; }
[JsonConverter(typeof(MyFormatter))]
[DataMember(EmitDefaultValue = false)]
public TestClassB TestClassB { get; set; }
}
public class TestClassB
{
public int Ids { get; set; }
public string Name { get; set; }
}
public class MyFormatter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override bool CanConvert(Type objectType)
{
throw new NotImplementedException();
}
}
JsonConverter被完全忽略。(从未创建MyFormatter类)。
你知道怎么做吗