我有一个从Web服务导入的C#类。由于调试问题和数组,我需要这个类有ToString()
覆盖或DebuggerDisplayAttribute
,我发现的唯一方法是将前者添加到派生类中:
class ExtWebServiceDataClass: WebServiceDataClass
{
public override string ToString()
{
return String.Format("stuff");
}
}
不幸的是,webservice方法需要一个基础对象数组,并且不接受派生对象数组(XML序列化错误):
System.InvalidOperationException:生成XML文档时出错。
→System.InvalidOprrationException:不期望类型为ExtWebServiceDataClass。使用XmlInclude或SoapInclude属性指定静态未知的类型。
有没有办法让它从客户端接受?一个表示it's just like the base class, just serialize it as such
的属性?
或者从派生类到基类的大规模转换的简单方法?
或者更简单地说,另一种方法是在客户端使用ToString
覆盖或DebuggerDisplayAttribute
?
答案 0 :(得分:2)
WebServiceDataClass
在生成的文件中声明为partial class
(与大多数生成的类一样)。您可以在同一项目的另一个文件中定义DebuggerDisplayAttribute
或ToString
,如下所示:
[DebuggerDisplay("MyString")]
public partial class WebServiceDataClass
{
}