C#WCF-如何将传入的xml字符串转换为具有get和set的模型


WCF服务中的C#.NET

接收服务参数中的XML字符串
这是POST请求。我收到一个简单格式的xml字符串,就像我的wcf服务中一样。

<query>
<testval>Hello123</testval>
<testval2>Bye123</testval2>
</query>

我有一个静态方法来提取xml字符串的节点
例如,string testval = XMLString.ExtractNode(xmlString, "testval") which returns Hello123. Is it possible to receive this xml string in a model with{get;set;}`?

我的POST服务功能

public string Test(string xmlString)
{
// code 
}

我想收到";xmlString"上面使用了一个模型(在一个类中),但我需要提取节点。

public class TestModel
{
public string testval {get; set;}
public string testval2 {get; set;}
}

那么我的POST服务功能就是

public string Test(TestModel testmodel)
{
// code 
Console.WriteLine(testmodel.testval) // "Hello123"
Console.WriteLine(testmodel.testval2) // "Bye123"
}

这可能吗?

我看到了一个可以参考的例子:

型号:

[XmlRoot(ElementName="payload")]
public class Payload {
[XmlElement(ElementName="firstname")]
public string Firstname { get; set; }
[XmlElement(ElementName="secondname")]
public string Secondname { get; set; }
[XmlElement(ElementName="number")]
public string Number { get; set; }
}
[XmlRoot(ElementName="payloads")]
public class Payloads {
[XmlElement(ElementName="payload")]
public List<Payload> Payload { get; set; }
}

I服务:

[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetPay")]
Payload GetPay();

服务:

public Payload GetPay()
{
return new Payload();
}

最新更新