我有一个从 Web 服务导入的 C# 类。由于调试问题和数组,我需要此类具有 ToString()
覆盖或 DebuggerDisplayAttribute
,我发现的唯一方法是将前者添加到派生类:
class ExtWebServiceDataClass: WebServiceDataClass
{
public override string ToString()
{
return String.Format("stuff");
}
}
不幸的是,webservice 方法需要一组基本对象而不接受一组派生对象(XML 序列化错误):
System.InvalidOperationException: Error generating the XML document.
→ System.InvalidOprrationException: The type ExtWebServiceDataClass was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
有没有办法让它从客户端接受它?表示 它就像基类,只需将其序列化
的属性?
或者从派生类大量转换到基类的简单方法?
或者更简单地说,另一种在客户端覆盖 ToString
或 DebuggerDisplayAttribute
的方法?
最佳答案
WebServiceDataClass
在生成的文件中声明为部分类
(就像大多数生成的类一样)。您可以定义您的 DebuggerDisplayAttribute
或 ToString
在同一项目的另一个文件中,如下所示:
[DebuggerDisplay("MyString")]
public partial class WebServiceDataClass
{
}
关于c# - 将派生类作为基类传递给 Web 服务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934901/