2013-04-19 2 views
2

В основном я хочу переопределить метод .ToString объекта WCF на стороне сервера. Как это можно сделать?Как переопределить метод ToString объекта WcF?

+0

Вы можете переопределить метод на стороне сервера, но эта переопределенная функциональность не будет отображаться для клиентов (сериализация предназначена только для полей и свойств, а не для методов). Если вы добавите примерный код и покажете, что вы хотите увидеть на стороне сервера и клиента, мы можем вам помочь. –

ответ

8

Классы, созданные из WSDL серверной стороны, создаются как частичные. Вы можете сделать это:

public partial YourObject{ 

public override string ToString() 
{ 
    //implementation 
} 
} 
+0

Я не совсем следую за тобой - где бы я поместил этот код? На стороне сервера, полагаю? –

+0

@JohnMayer в любом месте вашего клиента. Обычно я делаю отдельные файлы .cs для этой папки в той же папке, где находится ссылка на службу. – Filip

0

Вы имеете в виду контракт на данные на стороне сервера (где у вас есть ваши услуги)? Если это так, что мешает вам просто переопределить ToString(), как и для других классов? Однако, как указывалось другими, он не будет сериализован (означает, что он не будет отображаться на стороне клиента при добавлении ссылки на эту услугу).

Вы можете сделать то, что предложил Филип, чтобы получить аналогичное поведение на стороне клиента. Или вы можете просто повторно использовать одну и ту же DLL (где вы определили свои контракты с данными), когда вы настраиваете ссылку на службу на клиенте.

Смежные вопросы