【发布时间】:2011-10-31 20:16:56
【问题描述】:
假设我有
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
}
现在,如果我创建一个像...这样的匿名类型
var p = new Person() {FirstName = "bob",
LastName = "builder",
PhoneNumber = "0800 YESWECAN"};
var anon = new {p.FirstName, p.LastName};
使用 JSON.NET,当您拥有 TypeNameHandling = TypeNameHandling.Objects 时,它将序列化(然后用于反序列化)类型。我想要做的是伪造 annoymous 类中的类型,这样当它被序列化时,它看起来像一个“Person”对象。
有没有很好的简单方法来做到这一点?
注意:它必须在 json ( $type ) 中有 Json.Net 类型信息。所以 LBs 的回答并不能解决问题,实际上我可以使用 .net frameworks json 工具来做到这一点。
【问题讨论】:
-
有什么原因不能使用
new Person { FirstName = "", LastName = "" }? -
是的......仍然会有一个带有“PhoneNumber”的对象。对于这种情况,我不希望电话号码序列化(这是一个人为的例子来问这个问题,实际上,对象模型很复杂)。我更新了示例以尝试使其更清晰