wse3继承的类类型不被接受为方法参数

时间:2014-09-30 08:46:30

标签: parameter-passing wse inherited

我会尝试描述我的问题。 我在代理类中有一个方法(由wsdl自动生成),它接受Type Type BaseType的对象作为其第一个参数。我尝试传递一个继承的类型,我得到

  

预计不会出现xyz类型。使用XmlInclude或SoapInclude属性指定静态未知的类型

在搜索了很多时间后,我读到了关于命名空间和xmlinclude属性的内容。所以最初我有

  

///       [System.CodeDom.Compiler.GeneratedCodeAttribute(" wsdl"," 2.0.50727.3038")]       [System.Diagnostics.DebuggerStepThroughAttribute()]       [System.ComponentModel.DesignerCategoryAttribute("代码&#34)]       [System.Web.Services.WebServiceBindingAttribute(Name =" esDatabaseServersSoap",Namespace =" http:// smbsaas / foo / bar")]       [System.Xml.Serialization.XmlIncludeAttribute(typeof运算(SomeOtherType))]
      public partial class esDatabaseServers:Microsoft.Web.Services3.WebServicesClientProtocol {                private System.Threading.SendOrPostCallback GetRawSqlDatabasesPagedOperationCompleted;   ................................................ <无线电通信/>   ................................................ <无线电通信/>   public int AddSqlDatabase( BaseClass item,string groupName){

然后我尝试添加

  

[System.Web.Services.WebServiceBindingAttribute(Name =&#34; esDatabaseServersSoap&#34;,Namespace =&#34; http:// smbsaas / foo / bar&#34;)]       [System.Xml.Serialization.XmlIncludeAttribute(typeof运算(SomeOtherType))]    [System.Xml.Serialization.XmlIncludeAttribute(typeof运算( MyInheritedType 的))]    我添加了这一行
      public partial class esDatabaseServers:

我得到了

  

System.Web.Services.Protocols.SoapException:System.Web.Services.Protocols.SoapException:服务器无法读取请求。 ---&GT; System.InvalidOperationException:XML文档中存在错误。 ---&GT; System.InvalidOperationException:无法识别指定的类型:name =&#39; MyInheritedType&#39 ;, namespace =&#34; http:// smbsaas / foo / bar&#34;,at。

MyInheritedType继承自baseClass。

我真的不知道该怎么做。有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过将XmlInclude属性放入基类 - 如本文所述:Web services - XmlInclude in a derived class instead of a base class?

但是,只有拥有webservice才会有用。

如果仅用于某些增强功能(可能不是您的情况),您可以尝试使用部分类。