У меня есть класс C #, импортированный из веб-службы. Из-за проблем с отладкой и массивов мне нужно, чтобы этот класс имел переопределение ToString()
или DebuggerDisplayAttribute
, и единственный способ, который я нашел, - это добавить первое к производному классу:
class ExtWebServiceDataClass: WebServiceDataClass
{
public override string ToString()
{
return String.Format("stuff");
}
}
К сожалению, методы веб-сервиса требуют массив базовых объектов и не принимают массив производных объектов (ошибка сериализации XML):
System.InvalidOperationException: ошибка при создании XML-документа.
System.InvalidOprrationException: тип ExtWebServiceDataClass не ожидался. Используйте атрибут XmlInclude или SoapInclude, чтобы указать типы, которые не известны статически.
Есть ли способ заставить его принять его со стороны клиента? Атрибут с надписью it's just like the base class, just serialize it as such
?
Или простой способ массового преобразования производного класса в базовый?
Или, проще говоря, другой способ иметь ToString
переопределение или DebuggerDisplayAttribute
на стороне клиента?
WebServiceDataClass
объявлен какpartial class
в сгенерированном файле? Если да, вы можете определить свойDebuggerDisplayAttribute
в другом файле. - person Tim S.   schedule 23.04.2013partial
, поэтому я мог бы добавить к нему своеToString
переопределение (и все, что мне угодно). Пожалуйста, опубликуйте свой комментарий как ответ, чтобы я мог наградить вас наградой. - person Medinoc   schedule 23.04.2013