【发布时间】:2012-12-02 17:04:26
【问题描述】:
我是 ASP.NET Web API 的新手。
我已将我的应用程序配置为使用 XMLSerializer 作为
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer
= true;
为了简单起见,说我的控制器返回一个 Account 类的实例
public class Account
{
public int AccountId {get;set;}
public string AccountName {get;set;}
public string AccountNickName {get;set;}
}
当 AccountNickName(可选)有值时,我会得到这个 XML 响应
<Account>
<AccountId>1</AccountId>
<AccountName>ABAB</AccountName>
<AccountNickName>My Account</AccountNickName>
</Account>
当 AccountNickName(可选)为 null
<Account>
<AccountId>1</AccountId>
<AccountName>ABAB</AccountName>
</Account>
如果值为 null,则 XML 输出会跳过 AccountNickName 标记。
我的问题是:
如何配置序列化程序以发送封闭标签而不是跳过属性
AND 有没有办法在应用程序级别而不是在类级别进行配置
更新:
我知道您可以使用 JsonSerializerSetting 配置 JsonFormatter,您是否也可以使用 XMLSerializer 来实现这一点?
我不想在类上添加属性/装饰器。
【问题讨论】:
-
这似乎是一种性能改进,而不是在性能上退后一步,我只是相应地调整我的客户。前提是您可以控制客户端。
-
为什么客户关心空标签和自闭元素?
-
这不是空的或自闭的。输出中不存在标签!
标签: web-services asp.net-web-api xmlserializer