2011-12-16 1 views
1

WCF에서 데이터 계약을 맺고있는 개체에 확장 메서드를 표시 할 수 있습니까? 고객 클래스에서WCF datacontract에서 Extension 메서드 공개

[DataContract] 
public class Customer 
{ 
    [DataMember] 
    public int ID { get; set; } 

    [DataMember] 
    public string FirstName { get; set; } 

    [DataMember] 
    public Product CurrentProduct { get; set; } 

    public Customer DeepCopy() 
    { 
     //Do Something else. For example just return a new instance 
     return new Customer(); 
    }  
} 

[DataContract] 
public class Product 
{ 
    [DataMember] 
    public int ID; 

    [DataMember] 
    public int Name; 
} 

깊은 복사 방법이있다 : 여기

은 예입니다. 어떻게 이것을 클라이언트에게 공개합니까?

+0

찾고 계신 정보에 대해 더 많은 정보를 제공해 줄 수 있습니까? 특정 유형, 일반적으로 데이터 계약에 대한 확장 방법을 만들거나 어떻게 확장 방법을 유선에서 얻고 싶습니까? – scmccart

+0

당신이 확장하고자하는 것을 보여주는 방법은 어떨까요? 그리고 아마도 직렬화 된 타입을 확장하지 않고 그것을 구현하는 방법이 될 것입니다. –

+0

왜 필요한가요? 필요에 따라 고객을 신규로 확보하지 않는 것이 좋지만 실제로는 WCF이기 때문에 고객이 서비스로 생성되어 고객에게 제공되거나 그 반대의 경우도 마찬가지입니다. 왜 그렇게하려면 DataContract가 필요합니까? –

답변

2

아니요, 메서드가 아니라 WCF DataContract에서만 속성을 노출 할 수 있습니다.

1

거의 "재사용 유형"기능을 사용하여이를 수행 할 수 있습니다. 유감스럽게도 귀하의 경우에는 입력 또는 출력 매개 변수로 서비스에서 실제로 사용되는 유형의 재사용 만 허용됩니다. 확장 메서드를 포함하는 클래스는 정적 클래스이므로 입력 매개 변수 또는 반환 형식으로 표시되지 않습니다.