2011-12-26 4 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; 
     }  
    } 
} 

私は2つの問題を抱えています

  1. LastNameプロパティを空白に設定し、GetPersonメソッドを呼び出しました。その後、私はLastNameプロパティをチェックしていますが、空白ではなく何も表示されません。それが示しstrの中で、その後

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

    - :この後

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

私のように私のクライアントを変更 - を:

  • 第二の問題は、次のように私はPersonクラスの変更を行った場合であります"abc"ではなく "XYZ"。しかし、私はそれから "abc"を期待しています。

    私のプロジェクトで使用する必要があるので、アドバイスをしてください。

  • +0

    完全なコードはありますか? PersonクラスのDataContract属性はどこにありますか? – diggingforfire

    +0

    あなたは_really_あなたの質問の詳細ではなく、コメントにコメントを入れる必要があります。これは本当にあなたの質問を混乱させ、問題を解決するために将来問題を参照する人にとっては、問題と解決策が何であるかを理解することが難しくなります。 – jlafay

    答えて

    0

    2番目の問題として、プロパティLastNameとフィールド_LastNameがありますが、それらは関連していません。クライアントコードでFirstNameを設定すると、_LastName フィールドがに "abc"に設定され、次にLastName プロパティが設定されます。

    フィールド「_LastName」が「XYZ」に設定され、プロパティLastNameが「abc」に設定されたPersonクラスがあります。

    関連する問題