2011-08-11 5 views
0

私はCustomerというdatacontractを持っていて、CreateCustomer()やUpdateCustomer()のような2つのOperationContractコントラクトを持っています。WCFでDataContractのプロパティを非表示にする

ここで、私はUpdateCustomer()のCustomer datacontractプロパティのいくつかを非表示にする必要があります。たとえば、Customer data contractにSSNというプロパティがあります。このプロパティはCreateCustomer()で表示する必要があり、UpdateCustomer()では更新のために使用できません。どのようなアイデア、どのようにそれを行うには?

OperationContractとOperationContractの両方に個別のデータコントラクトオブジェクトが必要ですか?

ありがとうございます! バラ

+0

が利用できることproperyを持っていることの問題点は何ですか? – VJAI

答えて

1

あなたはこのすべてを持つCreateCustomerコール(これはobviuosly、前のクラスから継承することができます)のための2つの別々のクラス、見るべき呼び出しプロパティのみが含まれていUpdateCustomerコールに1つ、および他の必要があります:

[DataContract] 
public class UpdateCustomerData 
{ 
    ... have the common data properties here in this clas.... 
} 

[DataContract] 
public class CreateCustomerData : UpdateCustomerData 
{ 
    [DataMember] 
    public string SSN { get; set; } 
    ..... 
} 

そして、あなたの呼び出しがこれらのクラスを取る必要があります。

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    public int CreateCustomer(CreateCustomerData customer);  

    [OperationContract] 
    public int UpdateCustomer(UpdateCustomerData customer);  
} 
関連する問題