我的自定义类Customer及其属性。我在类和DataMember上面添加了DataContract标记到属性,它工作正常,但我正在调用服务类的函数,将客户实例作为参数传递,我的一些属性获得0值。
在调试时我可以看到我的属性值,在它到达函数后,一些属性的值为0.为什么它可以这样?
这两个动作之间没有代码。 DataContract标记工作正常,一切正常。关于这个问题的任何建议?
我尝试将ByRef更改为ByVal,但它不会改变任何内容。为什么它会传递其他值,有些整数类型只是0?
也许答案很简单,但我无法弄清楚。
谢谢。
<DataContract()>
Public Class Customer
Private Type_of_clientField As Integer = -1
<DataMember(Order:=1)>
Public Property type_of_client() As Integer
Get
Return Type_of_clientField
End Get
Set(ByVal value As Integer)
Type_of_clientField = value
End Set
End Property
End Class
<ServiceContract(SessionMode:=SessionMode.Allowed)>
<DataContractFormat()>
Public Interface CustomerService
<OperationContract()>
Function addCustomer(ByRef customer As Customer) As Long
End Interface
在调用addCustomer函数之前,type_of_client属性值为6。进入该函数后,该值为0.
更新:问题出在实例创建中。
当我在客户端创建一个类的实例,它存储在服务端时,我的一些属性传递0或什么都没有,但是当我调用服务类的函数时,它返回该类的新实例,它工作正常。
有什么区别?这可能是序列化问题吗?
答案 0 :(得分:1)