我不是100%确定正确的术语是什么,但是......
我有一个名为InParams的类,它有两个字段,一个字符串和一个long以及它们对应的字段属性访问器。它们分别用[DataContract]和[DataMember]修饰。
我有一个名为void Test(InParams inParams)的WCF服务方法
使用svcutil生成的代理很好,我可以设置long字段,但是当执行service方法时,long字段始终为0,即使我明确设置了long字段。我看着肥皂信封,看不到我长场的标签。
当我将长字段更改为字符串字段时,它会被序列化。对于整数也是如此。
我错过了某个属性还是什么?
答案 0 :(得分:2)
通过删除/重新生成代理类来确保它是最新的。看看是否有所作为?
答案 1 :(得分:0)
除了Tanner所提到的,DataContractSerializer明确支持longs和int。
.NET Framework基元类型。 .NET Framework中内置的以下类型都可以序列化并被认为是基本类型:Byte,SByte,Int16,Int32,Int64,UInt16,UInt32,UInt64,Single,Double,Boolean,Char,Decimal,Object和字符串。Link
答案 2 :(得分:0)
如果除了YourPropertyName之外,客户端上还有一个布尔值YourPropertyNameSpacified属性,则必须在客户端上将其设置为true。我认为这适用于所有价值类型的领域。另请参阅WCF service proxy not setting "FieldSpecified" property。