У меня есть пользовательский класс Customer со своими свойствами. Я добавил метку DataContract над классом и DataMember к свойствам, и она работала нормально, но я вызываю функцию класса обслуживания, передавая экземпляр клиента в качестве параметра, и некоторые из моих свойств получают 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
Значение свойства type_of_client равно 6, прежде чем я вызову функцию addCustomer. После того, как он входит в эту функцию, значение равно 0.
ОБНОВЛЕНИЕ: Проблема в создании экземпляра.
Когда я создаю экземпляр класса на стороне клиента, который хранится на стороне обслуживания, некоторые из моих свойств передают 0 или ничего, но когда я вызываю функцию класса обслуживания, он возвращает новый экземпляр этого класса работает нормально.
В чем разница? Может ли это быть проблемой сериализации?