co2*_*f2e 1 c# mongodb web asp.net-web-api asp.net-web-api2
类实现
[Serializable]
public class Apple
{
string name{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
它驻留在服务器端和Web API 2中,并返回一个苹果对象.如果我不使用serializable属性我从客户端获得正确的值,但如果我使用Serialized我的名称为null.我该如何解决这个问题?
您不必指定[Serializable]属性,因为无论您是否指定,Asp.Net WebApi都会默认序列化您的公共属性.你之所以得到null对象,是因为你的重新调整的json不是正常的形式.
第一个解决方案: 如果你真的想使用[Serializable]属性,那么你需要在WebApi 2中配置Serializer formatter(json或xml),你需要使用[DataContract]和[DataMember]以及[Serializable].
[Serializable]
[DataContract]
public class Apple
{
[DataMember]
string name{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
第二种解决方案: 您可以将Serializer配置为忽略[Serializable]属性.通过执行此操作,您不必像上面指定的那样使用类添加额外的属性.
var serializerSettings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
var contractResolver = (DefaultContractResolver)serializerSettings.ContractResolver;
contractResolver.IgnoreSerializableAttribute = true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |