Представление методов расширения в WCF-данных - PullRequest
1 голос
/ 16 декабря 2011

Можно ли предоставить методы расширения для объектов, которые являются контрактами данных в WCF?

Вот пример:

[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;
}

В классе клиента есть метод глубокого копирования. Как мне выставить это клиенту?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Нет, вы можете предоставлять свойства только в DataContract WCF, а не в методах.

1 голос
/ 15 марта 2012

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

...