使用Newtonsoft.Json并给出下面的"问候语"类,我试图允许"消息"像现在一样反序列化,并作为字符串.
public class Greeting
{
public IHello Message { get; set; }
}
public interface IHello
{
string Phrase { get; set; }
}
public class Hello1 : IHello
{
public string Phrase { get; set; }
}
var greeting = new Greeting
{
Message = new Hello1
{
Phrase = "Yo!"
}
};
var jsonText = JsonConvert.SerializeObject(greeting);
电流输出:{"Message":{"Phrase":"Yo!"}}
我确实考虑过使用通用的
public class Greeting<T>
{
public T Message { get; set; }
}
但我不想让用户知道设置
var greeting = new Greeting<string> { Message = "" };
或
var greeting = new Greeting<Hello1> { Message = new Hello1 { Phrase = "Yo!" }};
是否有可能以另一种方式实现所需的json反序列化/序列化?或者我使用了上面的实现,但不知何故将其隐藏了起来?
感谢所有帮助!