我使用来自WSDL结构的Wsdl.exe
在c#中创建了一个代理类。
我需要序列化代理类并发送到HttpWebRequest
。
这是我用来序列化类
的代码using (System.IO.Stream soapStream = new System.IO.FileStream(@"C:\SoapFormat.xml", System.IO.FileMode.OpenOrCreate))
{
System.Xml.Serialization.SoapReflectionImporter soapRefImp = new System.Xml.Serialization.SoapReflectionImporter();
System.Xml.Serialization.XmlTypeMapping xmlTypeMapping = soapRefImp.ImportTypeMapping(typeof(clsPerson));
System.Xml.Serialization.XmlSerializer xmlSerializer =
new System.Xml.Serialization.XmlSerializer(xmlTypeMapping);
xmlSerializer.Serialize(soapStream, p);
}
我将xml作为
<?xml version="1.0"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="id1">
<FirstName xsi:type="xsd:string">Jeff</FirstName>
<MI xsi:type="xsd:string">A</MI>
<LastName xsi:type="xsd:string">Price</LastName>
</clsPerson>
我需要添加肥皂信封。我怎样才能添加c#。
我的输出应该是这样的
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="id1">
<FirstName xsi:type="xsd:string">Jeff</FirstName>
<MI xsi:type="xsd:string">A</MI>
<LastName xsi:type="xsd:string">Price</LastName>
</clsPerson>
</soapenv:Body>
</soapenv:Envelope>
您是否需要创建字符串构建器并将soap信封添加为字符串。 然后将xml插入到该字符串中。
例如
string s= "<body>"+ xml + "</body">
c#中的任何其他选项可以创建soap信封吗?
我需要将这个soapenvelope作为httprequest发送到web服务。
任何帮助表示赞赏。
这需要webservice而不是wcf。
谢谢
supriya