c# - 将派生类作为基类传递给 Web 服务方法

标签 c# web-services tostring derived-class

我有一个从 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.

有没有办法让它从客户端接受它?表示 它就像基类,只需将其序列化 的属性?

或者从派生类大量转换到基类的简单方法?

或者更简单地说,另一种在客户端覆盖 ToStringDebuggerDisplayAttribute 的方法?

最佳答案

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

[DebuggerDisplay("MyString")]
public partial class WebServiceDataClass
{
}

关于c# - 将派生类作为基类传递给 Web 服务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934901/

相关文章:

c# - 从网络共享运行 C#.net winForms 的性能考虑

c# - service-fabric-dotnet-getting-started 中的 FabricException

java - 带有 jax-rs : BeanCreationException 的 REST 服务

将大整数转换为不带模基数的字符串的算法

c# - 为什么 Convert.ToInt32 ('1' ) 返回 49?

c# - 确定某人是否打开了网页

c# - 如何在异常处理中使用接口(interface)

javax.xml.ws.WebServiceException : Could not find service named

vb.net - 从字符串 yyyyMMdd 到整数类型的转换无效

Java toString方法区别