asp web api json序列化返回私有属性

Ano*_*yes 11 serialization json wsdl asp.net-web-api

我有一个Web api控制器类,我在从Web api控制器的WSDL生成的代理类上调用一个方法,然后返回一个WSDL代理类中定义的类型的对象.

但返回的xml/json包含代理类的私有成员

私人会员是

    private string companyField;

    private string soldBPField;

    private string fromDateField;

    private string toDateField;

    private long succStatusField;
Run Code Online (Sandbox Code Playgroud)

并且返回的xml是:

<companyField>700</companyField>
<soldBPField>999000353</soldBPField>
<fromDateField>01-01-2012</fromDateField>
<toDateField>01-01-2013</toDateField>
Run Code Online (Sandbox Code Playgroud)

返回的json也很相似

我更改了global.asax中的xml格式化程序,如下所示:

var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xml.UseXmlSerializer = true;
Run Code Online (Sandbox Code Playgroud)

这改变了返回的XML:

<company>700</company>
<soldBP>999000353</soldBP>
<fromDateField>01-01-2012</fromDate>
<toDate>01-01-2013</toDate>
Run Code Online (Sandbox Code Playgroud)

但是返回的json仍然包含私有变量的名称

谁能帮我这个

You*_*oui 17

您的类型是否标记为[Serializable]?Serializable意味着序列化程序应序列化所有字段 - 私有或公共字段.尝试删除Serializable或使用此行来阻止JSON格式化程序识别属性:

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
Run Code Online (Sandbox Code Playgroud)