加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

web-services – 为什么需要为int和Data设置Web Service DataMem

发布时间:2020-12-14 18:34:33 所属栏目:资源 来源:网络整理
导读:我通过WCF创建了一个Web服务.然后我将其作为Web服务公开,以使其可用于.NET 2.0应用程序.我用DataMember创建了一些DataContract,可以由暴露的OperationContract使用. 我注意到当我尝试创建要在Web服务中传递的DataClass时,每个DataContract属性现在都为每个成
我通过WCF创建了一个Web服务.然后我将其作为Web服务公开,以使其可用于.NET 2.0应用程序.我用DataMember创建了一些DataContract,可以由暴露的OperationContract使用.

我注意到当我尝试创建要在Web服务中传递的DataClass时,每个DataContract属性现在都为每个成员提供了一个伙伴“Specified”属性.

例如:

[DataContract]
public class Sales
{

  [DataMember]
  public int InvoiceNo;

...
}

当我在Web服务客户端中创建Sales实例时.我得到名为InvoiceNo和InvoiceNoSpecified的属性.

现在这里是我的问题,当属性是string类型时,我不需要将相应的“Specified”属性设置为true,但是当属性类型是int或DateTime时,如果我没有设置相应的“Specified”如果属性为true,则该值在Web服务主机中变为null.有没有办法避免设置Specified属性?因为我需要在我的代码中的很多地方调用Web服务功能.要跟踪它们真的很难.

解决方法

DataMember属性的默认参数是:
bool EmitDefaultValue (default true)
bool IsRequired (default false)

如果您要公开的属性是不可为空的值类型,则应使用:

[DataMember(IsRequired = true)]
public int InvoiceNo;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读