我会尝试描述我的问题。 我在代理类中有一个方法(由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。
我真的不知道该怎么做。有什么想法吗? 谢谢!
答案 0 :(得分:0)
您是否尝试过将XmlInclude属性放入基类 - 如本文所述:Web services - XmlInclude in a derived class instead of a base class?
但是,只有拥有webservice才会有用。
如果仅用于某些增强功能(可能不是您的情况),您可以尝试使用部分类。