相关疑难解决方法(0)

自定义JsonConverter WriteJson不会改变子属性的序列化

我总觉得JSON序列化程序实际遍历整个对象的树,并在它遇到的每个接口类型对象上执行自定义JsonConverter的WriteJson函数 - 不是这样.

我有以下类和接口:

public interface IAnimal
{
    string Name { get; set; }
    string Speak();
    List<IAnimal> Children { get; set; }
}

public class Cat : IAnimal
{
    public string Name { get; set; }
    public List<IAnimal> Children { get; set; }        

    public Cat()
    {
        Children = new List<IAnimal>();
    }

    public Cat(string name="") : this()
    {
        Name = name;
    }

    public string Speak()
    {
        return "Meow";
    }       
}

 public class Dog : IAnimal
 {
    public string Name { get; …
Run Code Online (Sandbox Code Playgroud)

c# serialization json converter json.net

12
推荐指数
1
解决办法
2万
查看次数

在没有属性的类上全局使用JsonConverter

我有一个MVC .net项目,我正在使用mongodb.我使用自定义JsonConverter将ObjectId属性序列化为字符串,正如我在这个答案中描述的那样: 在MVC中自动将mongodb ObjectId作为字符串与Json.NET一起使用

在那里我使用了一个属性,以便自定义转换器用于某个属性: [JsonConverter(typeof(ObjectIdConverter))

有没有办法告诉序列化器在ObjectId类型的所有属性上使用ObjectIdConverter?我不想继续讨论整个项目并添加这个属性.

谢谢!

c# asp.net-mvc json.net mongodb

6
推荐指数
1
解决办法
2338
查看次数

标签 统计

c# ×2

json.net ×2

asp.net-mvc ×1

converter ×1

json ×1

mongodb ×1

serialization ×1