WEB API返回序列化属性后的对象

时间:2014-05-24 09:19:14

标签: serialization asp.net-web-api

我正在使用WEB API返回一个对象(类)。

类已经使用System.Xml.Serialization属性进行结构化,这使得使用WEB API很难返回整个类,因为它暴露了更多它应该。我不认为这是序列化类并返回字符串的解决方案,所以我想返回一个可序列化的对象。

以下是我班级的简短例子

                [XmlIgnore]
                [System.Xml.Serialization.XmlAttributeAttribute()]
                public SettingEnums.currencyCodesEnum currency
                {
                    get;
                    set;
                }

                [XmlAttributeAttribute("currency")]
                public string Serializablecurrency
                {
                    get { return this.currency.ToString(); }
                    set { }
                }

如何返回遵循此类中定义的序列化属性的可序列化对象?

1 个答案:

答案 0 :(得分:1)

ASP.NET Web API确实使用在类级别定义的序列化属性。但是,XmlMediaTypeFormatter默认使用DataContractSerializer。由于您使用的是XmlSerializer,因此您需要告诉Web API使用相同的内容。

GlobalConfiguration.Configuration.Formatters
                      .XmlFormatter.UseXmlSerializer = true;