Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OData[JsonConverter]属性序列化_C#_Asp.net Web Api_Json.net_Odata_Json - Fatal编程技术网

C# OData[JsonConverter]属性序列化

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

当通过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 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类)。 你知道怎么做吗