急问:读取本地wsdl文件动态实现SOAP请求,反射客户端类时失败,谢谢!
使用framework2.0 调试时报:反射"string1"出错。把动态编译出来的客户端代码打出来一看,发现是成员变量MessageID是这个类型:
public @string MEName;
public string1 MessageID;
从代码上看,@string和string1的两个定义效果是一样的,唯一差别在于XmlTypeAttribute的定义,string1比@string多了一个属性TypeName:
@string的定义如下:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdlWatcher", "1.0.0.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.w3.org/2001/XMLSchema")]
[System.Xml.Serialization.XmlRootAttribute("MEName", Namespace="http://www.chinamobile.com/IMS/MMTelAS/", IsNullable=false)]
public partial class @string : System.Web.Services.Protocols.SoapHeader
{
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string[] Text;
}
string1的定义如下:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdlWatcher", "1.0.0.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(TypeName="string", Namespace="http://www.w3.org/2001/XMLSchema")]
[System.Xml.Serialization.XmlRootAttribute("MessageID", Namespace="http://www.chinamobile.com/IMS/MMTelAS/", IsNullable=false)]
public partial class string1 : System.Web.Services.Protocols.SoapHeader
{
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string[] Text;
}
搜到一个跟我有一样问题的帖子,可惜没有解决方案T_T
http://social.msdn.microsoft.com/Forums/zh-CN/vsprereleaseannouncements/thread/c2d15766-fb5c-49ff-a8bd-3b5d13fff207
[最优解释]
http://topic.csdn.net/u/20110705/11/e3683517-7fc4-4b1b-8c03-2e3547b3706e.html
[其他解释]
自己顶一下。
[其他解释]
该回复于2011-12-16 15:10:05被版主删除
[其他解释]
该回复于2011-12-16 15:26:55被版主删除
[其他解释]
我一开始也怀疑是2.0的问题,但是使用4.0的框架编译还是会报这个错。而且我是需要动态加载这个类的,本身并不需要生成类文件,所以没有办法依照你的帖子去修改文件,下午把wsdl文件里面节点的type改了一个自定义类型,暂时把这个问题规避过去了,因为这个wsdl文件是客户提供的,所以不是十分有把握搞定。非常想知道这个问题的原因!