カスタムクラスCustomerとそのプロパティがあります。クラスとDataMemberの上にDataContractマークをプロパティに追加しましたが、正常に機能していましたが、サービスクラスの関数を呼び出して、顧客インスタンスをパラメーターとして渡し、一部のプロパティは0の値を取得します。
デバッグ中、プロパティ値を確認でき、関数に到達した後、一部のプロパティの値は0になります。なぜそうなるのでしょうか。
この2つのアクションの間にコードはありません。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または何も渡されませんが、そのクラスの新しいインスタンスを返すサービスクラスの関数を呼び出すと、それは機能します大丈夫。
違いは何ですか?それはシリアル化の問題でしょうか?