首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF DataContract属性

WCF DataContract属性
EN

Stack Overflow用户
提问于 2013-08-28 19:50:56
回答 2查看 480关注 0票数 0

我有一个关于[DataContract]属性的问题。

我写的代码如下:这里我没有为我的测试类使用[DataContract]属性。

代码语言:javascript
复制
    class test
    {
      [Datamember]
       public string Strproperty
        {
          get;
          set;
        }
       [Datamemer]
       public string Strproperty2
        {
          get;
          set;
        }
    }


 class checktotal:Iservice
    {
    public string testmethod(test obj)
       {
           return obj.Strproperty+Strproperty2;
       }
    }

为此,我从客户端发送数据,我得到的值是正确的。

这里有必要为测试类使用[DataContract]属性吗?

如果我删除了测试类的[Datamember],属性在从客户端发送时会出错。但是,即使我没有使用[DataContract]属性,我也不会收到任何错误。

请给我一个简短的解释,并举例说明,以便我能理解何时给予该属性,何时不给予该属性。

谢谢,萨蒂亚·普拉塔普。

EN

回答 2

Stack Overflow用户

发布于 2013-08-28 19:54:58

如果没有DataContract属性的类提供了默认构造函数,则DataContractSerializer可以处理这些类。有关更多详细信息,请参阅MSDN documentation

票数 1
EN

Stack Overflow用户

发布于 2013-08-28 20:13:16

从.NET 3.5 Service Pack1开始,您可以省略(不使用) [DataContract][DataMember]属性。如果这样做,那么WCF中的DataContractSerializer将会像XML序列化程序一样工作--它只序列化所有的公共属性。

我更喜欢显式地使用[DataContract][DataMember] -它让我有机会指定选项(比如数据契约的XML命名空间、[DataMember]的顺序),而且它还允许我从序列化中排除某些属性。

一旦你开始在一个属性上使用[DataMember],那么那些用[DataMember]修饰的属性将被视为序列化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18487083

复制
相关文章

相似问题

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