我有一个 MessageContract 类,其属性设置了 MessageBodyMember 属性。 传入的 soap 请求有一个 XML 元素,如下所示:
<level num="3">error</level>
MessageContract 中错误级别的属性如下所示:
[MessageBodyMember(Name="level", Order = 6)]
public string ErrorLevel { get; set; }
我想读取属性“num”的值,而不是字符串“error”。有办法吗?
最佳答案
您可以使用此类构造一个 xml 类型: http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.aspx
代码是:
TextReader sr = new StringReader("<level num="3">error</level>");
XElement xml = XElement.Load(sr);
完成后,您可以像这样访问属性:
int Num = Int32.Parse(xml.Element("level").Attribute("num").Value);
如果您要创建完整的 xml 文档,则需要“XDocument”和“XDeclaration”。
记住必要的 using 语句。
关于c# - 从 SOAP 请求中读取 XML 属性到 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9486462/