类实现
[Serializable]
public class Apple
{
string name{get;set;}
}它驻留在服务器端和Web 2中,并返回一个apple对象。如果不使用serializable属性,则从客户端获取正确的值,但如果使用序列化,则名称为null。我怎样才能解决这个问题?
发布于 2016-03-08 07:38:08
您不必指定可序列化属性,因为无论您指定与否,Asp.Net WebApi默认都会序列化您的公共属性。之所以获得空对象,是因为您重新调整的json不像应该的那样处于正常状态。
第一个解决方案:,如果您真的想使用可序列化属性,那么您需要配置WebApi 2中的序列化程序格式化程序(json或xml),并且需要使用DataContract和DataMember以及Serializable。
[Serializable]
[DataContract]
public class Apple
{
[DataMember]
string name{get;set;}
}第二个解决方案:您可以将序列化程序配置为忽略可序列化属性。通过这样做,您不必像我前面所指定的那样,在类中添加额外的属性。
var serializerSettings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
var contractResolver = (DefaultContractResolver)serializerSettings.ContractResolver;
contractResolver.IgnoreSerializableAttribute = true;https://stackoverflow.com/questions/35859910
复制相似问题