2011-12-26 3 views
0

DataContract как: -Передача параметров объекта в WCF

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; 

затем ул он показывает «XYZ» вместо «abc». Но я ожидаю от него «abc».

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

+0

Полный код? Где атрибут DataContract в вашем классе Person? – diggingforfire

+0

Вам _really_ необходимо поместить комментарии в комментарии, а не в свои детали вопроса. Это действительно мешает вашему вопросу и затрудняет для любого, кто ссылается на вопрос в будущем, выяснить, что такое проблема и решение. – jlafay

ответ

0

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

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

Смежные вопросы