我有一个 Web api Controller 类
我在从 Web api Controller 的 WSDL 生成的代理类上调用一个方法,
我返回一个在 WSDL 代理类中定义的类型的对象。
但返回的 xml/json 包含代理类的私有(private)成员
私有(private)成员是
private string companyField;
private string soldBPField;
private string fromDateField;
private string toDateField;
private long succStatusField;
并且返回的 xml 是:
<companyField>700</companyField>
<soldBPField>999000353</soldBPField>
<fromDateField>01-01-2012</fromDateField>
<toDateField>01-01-2013</toDateField>
返回的json也类似
我更改了 global.asax 中的 xml 格式化程序,如下所示:
var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xml.UseXmlSerializer = true;
这将返回的 XML 更改为:
<company>700</company>
<soldBP>999000353</soldBP>
<fromDateField>01-01-2012</fromDate>
<toDate>01-01-2013</toDate>
但返回的 json 仍然包含私有(private)变量的名称
谁能帮我解决这个问题
最佳答案
您的类型是否标记为 [Serializable]
?可序列化意味着序列化程序应该序列化所有字段 - 私有(private)或公共(public)。尝试删除 Serializable
或者使用此行来阻止 JSON 格式化程序识别属性:
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
关于json - asp web api json序列化返回私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17341135/