我发现今天 MVC4 使用的 XML 和 Json 序列化程序之间存在相当大的差异。
我试图返回一个看起来像这样的对象:
public class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
public string FullName{ get{ return FirstName + " " + LastName }}
}
当客户端请求 json 作为结果时,我得到FirstName
,LastName
并FullName
返回预期值。
但是,当客户端请求 XML 数据时,他只得到FirstName
和LastName
。
在我看来这是非常糟糕的,因为这意味着客户端将根据他们请求的格式获得不同的数据。
这似乎是故意的,因为 Json 序列化程序的文档说默认包含只读属性,而对于 Xml 序列化程序,默认情况下它们被排除在外。
所以我的问题是:我如何更改 MVC4 使用的 Xml 序列化程序以默认包含那些只读的。我知道它可以做到,因为如果您将DataContract
属性添加到类,并将DataMember
属性添加到类的每个属性,它也会返回只读变量,但我真的不想这样做。