我有一个从Web服务导入的C#类。由于调试问题和数组,我需要此类具有ToString()
覆盖或DebuggerDisplayAttribute
,而我发现的唯一方法是将前者添加到派生类中:
class ExtWebServiceDataClass: WebServiceDataClass
{
public override string ToString()
{
return String.Format("stuff");
}
}
不幸的是,Web服务方法需要一组基础对象,并且不接受一组派生对象(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
或ToString
,如下所示:
[DebuggerDisplay("MyString")]
public partial class WebServiceDataClass
{
}