3

我有一个从 Web 服务导入的 C# 类。由于调试问题和数组,我需要这个类有一个ToString()覆盖 or 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在客户端?

4

1 回答 1

2

WebServiceDataClasspartial class在生成的文件中声明为 a (就像大多数生成的类一样)。您可以在同一项目中定义您的DebuggerDisplayAttributeToString在另一个文件中,如下所示:

[DebuggerDisplay("MyString")]
public partial class WebServiceDataClass
{
}
于 2013-04-23T11:55:12.473 回答