我需要构建一个接受
XML数据的Web服务. (它必须接受XML,不建议替代格式,因为这不是一种选择.)
我用谷歌搜索了“教程xml webservice c#”(及其各种排列)并遵循了几个教程.我了解如何创建一般的Web服务,并创建了几个基本的Web服务来添加数字,转换温度等.
不幸的是,我所有包含关键字“xml”和“webservice”的搜索只会提供有关如何解析XML文件或从文件中读取XML文件的教程.我需要知道如何在第一时间获得它们.我找不到任何解释如何构建接受XML作为输入的Web服务的东西.
我应该为应该接收XML的webservice方法使用什么参数类型?它是一个字符串?它是一个XmlDocument?别的什么?
有人可以提供指向如何从XSD创建C#类和诸如此类的东西的教程的链接吗?
我发现的一切都表明它通常是通过在C#中创建类然后使用工具来创建XSD来完成的.但是,我需要走相反的方向.我在哪里可以学习这样做?我不在乎我是否必须手工完成;我不是在寻找一种工具来为我做这件事.
显然我对Web服务缺乏经验,所以我感谢您提供的任何帮助.但请不要指导我参加基本的“网络服务教程”,因为我已经完成了几次(当我们开始重复我已经完成的材料时,我停了下来).
另外,请不要告诉我“您需要了解XML,Web服务,序列化等”以及其他如此广泛的挥手答案.我知道我需要获得这些东西,我正在努力.如果您可以更具体,例如“首先了解c#中的X类,然后了解Y”或“了解WSDL中的X概念,然后了解C#中的Y序列化概念”,这将有所帮助.
如果有人能指导我完成整个过程的任何免费在线课程/教程系列,那也是很棒的.
编辑:好的,显然这个问题并不像我想的那样具体,所以这里有一个例子.
这是另一个代理商将发送到我的网络服务的内容:
<Person>
<LegalName>
<FirstName>Ralph</FirstName>
<LastName>Anderson</LastName>
<PhoneticFirstName>rah-lf</PhoneticFirstName>
</LegalName>
<SSN>122-34-1232</SSN>
<Demographics>
<Sex>male</Sex>
<Height>502</Height>
</Demographics>
<DriversLicense>
<DriversLicenseNumber>1234</DriversLicenseNumber>
<IssuingState>CA</IssuingState>
</DriversLicense>
<Person>
我的理解是我需要写这样的东西:
public Service () {
[WebMethod]
public void CreateRecord(XmlDocument newRecord)
{
// do stuff
}
}
最佳答案 如果我正确理解了这个问题,你可能想要一个字符串作为参数,并在收到它后解析它.还有其他方法可以完成同样的事情,但没有更多信息,我无法建议.
为了在收到字符串后解析字符串,您可以使用xsd.exe工具将XSD反向工程为C#类:http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx.该命令看起来像xsd.exe / c your.xsd.
然后,您将使用XmlSerializer的DeSerialize方法将XML字符串转换为对象.
希望这可以帮助.