Вы не должны наследовать от типа прокси, возвращенного из WCF. Учтите, что тип не принадлежит вам!
Вы можете сделать некоторое «расширение», используя частичный класс C #, поскольку прокси-классы генерируются как частичные классы. Вместо создания класса ExtendedStore
со свойством Id
попробуйте:
public partial class Store
{
public int Id {get;set;}
}
Это добавляет свойство Id к классу Store
. Вы также можете добавить методы события и т. Д. Таким образом.
Частичный класс должен быть определен в том же проекте, который содержит ссылку на службу.
Рассмотрим проект с корневым пространством имен «Проект». У вас есть ссылка на службу «Коммерция» на веб-службу, которая возвращает объект «Магазин». Это означает, что существует класс с именем Project.Commerce.Store
:
// Proxy code generated by "Add Service Reference":
namespace Project.Commerce {
[DataContract]
public partial class Store {
[DataMember]
public string StoreName {get;set;}
// More data members here
}
}
Вы создадите папку в корневом каталоге вашего проекта с именем «Коммерция». Это сделано для того, чтобы пространства имен создаваемых вами классов были «Project.Commerce». Затем создайте свой частичный класс:
// This is your code in Store.cs in the new "Commerce" folder:
namespace Project.Commerce {
public partial class Store {
public int Id {get;set;}
public override string ToString() {
return String.Format("Store #{0}: {1}", Id, StoreName);
}
}
}