2011-12-16 103 views
1

是否可以在WCF中的數據協定的對象上公開擴展方法?在WCF datacontract中公開擴展方法

下面是一個例子:

[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 2011-12-16 02:55:42

回答

2

不行,你只能暴露在WCF DataContract屬性,而不是方法。

1

你幾乎可以做到這一點使用「重用類型」功能。不幸的是,對於你的情況,它只允許重用服務實際使用的類型作爲輸入或輸出參數。持有擴展方法的類將是一個靜態類,因此不會顯示爲輸入參數或返回類型。