gpt4 book ai didi

c# - 无法使用 Json.NET 反序列化具有多个构造函数的类

转载 作者:可可西里 更新时间:2023-11-01 08:25:29 26 4
gpt4 key购买 nike

<分区>

我有一个我不能用多个构造函数控制的类型,等同于这个:

    public class MyClass
{
private readonly string _property;

private MyClass()
{
Console.WriteLine("We don't want this one to be called.");
}

public MyClass(string property)
{
_property = property;
}

public MyClass(object obj) : this(obj.ToString()) {}

public string Property
{
get { return _property; }
}

}

现在,当我尝试反序列化它时,调用了私有(private)无参数构造函数,并且从未设置该属性。测试:

    [Test]
public void MyClassSerializes()
{
MyClass expected = new MyClass("test");
string output = JsonConvert.SerializeObject(expected);
MyClass actual = JsonConvert.DeserializeObject<MyClass>(output);
Assert.AreEqual(expected.Property, actual.Property);
}

给出以下输出:

We don't want this one to be called.

Expected: "test"
But was: null

如何在不更改 MyClass 定义的情况下修复它?此外,这种类型是深入定义我真正需要序列化的对象的关键。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com