Integer在webservice的传递

 

 

Integer在webservice的传递要注意的一个重要细节是MyBase元素的ID被类型xsd:int定义,并且包含minOccurs=0的属性。MyBase 的XML Schema定义如下所示:



1  < xs:complexType  name ="MyBase" >  
2      < xs:sequence >  
3         < xs:element  minOccurs ="0"  maxOccurs ="1"  name ="ID"  type ="xs:int"  
4         nillable ="true"   />  
5      </ xs:sequence >  
6  </ xs:complexType >  

 

当minOccurs=0时,表明ID属性可以在XML文档中省去。不过这将导致.NET平台的一个问题:在.NET中xsd:int映射为Int32,Int32是一个数值类型,数值类型不能为空。这就意味着,由于Int32的值必须是有效数值,所以无法决定是否设置ID属性。.NET框架通过创建另一个Boolean类型的IDSpecified变量来解决这个问题。此变量由.NET XML序列逻辑来检查,用以决定ID变量是否应该被设置,其本质就是给ID赋上NULL/not NULL的值。因此无论是否想访问ID变量,你都首先要检查或设置IDSpecified变量。关于这种运用模式的更多详细信息,请查阅XmlIgnoreAttribute类的MSDN文档。

故在客户端给int变量赋值时,同时设置IDSpecified=true;

转载于:https://www.cnblogs.com/godwar/archive/2010/07/30/1788603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值