Передача параметра объекта в WCF - PullRequest
0 голосов
/ 26 декабря 2011

DataContract как: -

namespace AssemblyA
{
    public class Person                                 
    {     
        public string FirstName {get;set;}
        public string LastName {get;set;}                             
    }                                                              
}

Услуга выглядит следующим образом: -

[ServiceContract]            
public interface IServer      
{ 
    [OperationContract]  
    Person GetPerson(); 

    [OperationContract] 
    Person UpdatePerson( Person person )             
}

Клиентская сторона: -

using AssemblyA; 

namespace AssemblyB 
{
    class Program     
    {         
        static void Main(string[] args)         
        {             
            IServer server = factory.CreateChannel(); 
            Person person = server.GetPerson(); 
            person.FirstName = "Kilroy";       
            person.LastName = "";
            Person p = server.UpdatePerson(person);
            String str = p.LastName; 
        }    
    }
} 

У меня две проблемы: -

  1. Я установил свойство LastName пустым и вызвал метод GetPerson. После этого, когда я проверяю свойство LastName, оно становится пустым вместо

  2. Вторая проблема, если я внес изменения в класс Person следующим образом: -

    public class Person                                             
    {                                                 
        String _FirstName;   
        String _LastName;                                 
        public string FirstName 
        {
            get{}
            set
            { 
                _FirstName=value;
                _LastName="XYZ";
            }
        }
    
        public string LastName { get;set; }  
    }  
    

После этого я изменил свой клиент как: -

IServer server = factory.CreateChannel(); 
Person person = server.GetPerson(); 
person.FirstName = "Kilroy";       
person.LastName = "abc";
Person p = server.UpdatePerson(person);
String str = p.LastName; 

тогда в str вместо "abc" отображается "XYZ". Но я ожидаю от этого "abc".

Пожалуйста, совет, как я должен использовать его в моем проекте.

1 Ответ

0 голосов
/ 26 декабря 2011

Что касается вашей второй проблемы, у вас есть свойство LastName и поле _LastName, они не связаны.В вашем клиентском коде вы устанавливаете FirstName, это устанавливает для поля _LastName значение "abc", затем вы устанавливаете свойство LastName .

Теперь у вас есть класс Person споле _LastName установлено в "XYZ", а свойство LastName установлено в "abc".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...