2011-12-16 3 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

+0

как показать, что вы хотите расширить, и, возможно, ответ будет заключаться в том, как реализовать это, не пытаясь расширить сериализованный тип. –

+0

Зачем вам это нужно? Почему бы и нет клиентов (клиентов), если они им нужны, но на самом деле, поскольку это WCF, Клиент будет создан службой и передан клиенту или наоборот. Зачем вам нужен DataContract для этого? –

ответ

2

Нет, вы можете показывать объекты только в WCF DataContract, а не в методах.

1

Вы можете сделать это с помощью функции «Повторное использование». К сожалению, для вашего случая это только позволяет повторно использовать типы, которые фактически используются службой в качестве входных или выходных параметров. Ваш класс, содержащий методы расширения, будет статическим классом и поэтому не будет отображаться как входной параметр или как возвращаемый тип.