根据标题,我发现我的只读模型属性未在我的Web API项目中序列化。 MVC 4 Web API,VS2010。
我见过很多像this stackoverflow question这样的帖子,声明MVC 4 Web API beta 不支持JSON序列化只读属性。但是许多其他参考文献指出最终版本使用的是JSON.NET而不是DataContractJsonSerializer,所以应该解决这个问题。
此问题是否已解决?如果没有,我是否只是为了获得序列化而被迫投入假装?
更正,确实似乎与JSON一起使用(抱歉!),但XML显示问题。与之前相同的问题,但在XML序列化的上下文中。
答案 0 :(得分:7)
默认的JSON序列化程序现在是Json.NET。因此,readonly属性序列化应该可以工作,而无需你做任何事情。
对于XML,在4.5中我们将此标志添加到DataContractSerializer:
你应该可以这样写:
config.Formatters.XmlFormatter.SetSerializer(myType, new DataContractSerializer(myType, new DataContractSerializerSettings() { SerializeReadOnlyTypes = true });
将此代码放在GlobalConfiguration.Configure
中由Application_Start
调用的函数中。默认情况下,这将是WebApiConfig.Register()
。