【发布时间】:2014-01-28 05:28:07
【问题描述】:
我希望能够使用 Microsoft ASP.NET Web API 构建解决方案。我希望能够有一个复杂的对象,比如下面的“Person”,它实现了一个接口“IDisplayInfo”。当Person被序列化时,我希望所有属性都能正常序列化,但是当另一个像WorkOrder对象这样只指定接口的对象被序列化时,我希望只有接口上的属性被序列化。我希望它同时适用于 XML 和 JSON。我尝试覆盖 DefaultContractResolver,但我无法理解它是如何工作的。
感谢您的帮助!
public interface IDisplayInfo
{
string Id { get; }
string Display { get; }
}
public class Person : IDisplayInfo
{
public string Id { get; set; }
public string Display { get { return FirstName + " " + LastName; } }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class WorkOrder
{
public string Title { get; set; }
public IDisplayInfo CreatedBy { get; set; }
}
序列化的 WorkOrder 应如下所示: { 标题:“测试”,创建者:{ ID:“1”,显示:“Bob Fox”} }
序列化的人应该是这样的: { ID:“1”,显示:“Bob Fox”,名字:“Bob”,姓氏:“Fox”}
【问题讨论】:
-
我在答案顶部添加了一个可能很有趣的链接。看看你能不能完成你需要的。
标签: c# asp.net json asp.net-web-api nsjsonserialization