首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Web 2到客户端的值在序列化数据传输对象后为空

从Web 2到客户端的值在序列化数据传输对象后为空
EN

Stack Overflow用户
提问于 2016-03-08 05:46:48
回答 1查看 1.1K关注 0票数 2

类实现

代码语言:javascript
复制
[Serializable]
public class Apple
{
    
    string name{get;set;}


}

它驻留在服务器端和Web 2中,并返回一个apple对象。如果不使用serializable属性,则从客户端获取正确的值,但如果使用序列化,则名称为null。我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-08 07:38:08

您不必指定可序列化属性,因为无论您指定与否,Asp.Net WebApi默认都会序列化您的公共属性。之所以获得空对象,是因为您重新调整的json不像应该的那样处于正常状态。

第一个解决方案:,如果您真的想使用可序列化属性,那么您需要配置WebApi 2中的序列化程序格式化程序(json或xml),并且需要使用DataContract和DataMember以及Serializable。

代码语言:javascript
复制
[Serializable]
[DataContract]
public class Apple
{
   [DataMember]
   string name{get;set;}
}

第二个解决方案:您可以将序列化程序配置为忽略可序列化属性。通过这样做,您不必像我前面所指定的那样,在类中添加额外的属性。

代码语言:javascript
复制
var serializerSettings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
var contractResolver = (DefaultContractResolver)serializerSettings.ContractResolver;
contractResolver.IgnoreSerializableAttribute = true;
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35859910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档