我有一个Web api控制器类 我在从web api控制器的WSDL生成的代理类上调用一个方法, 我返回一个WSDL代理类中定义的类型的对象。
但返回的xml / json包含代理类的私有成员
私人成员
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仍然包含私有变量的名称
任何人都可以帮助我
答案 0 :(得分:14)
您的类型是否标记为[Serializable]
? Serializable意味着序列化程序应序列化所有字段 - 私有或公共字段。尝试删除Serializable
或者使用此行来阻止JSON格式化程序识别属性:
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();