【问题标题】:Reading XML attributes from a SOAP request to a WCF service将 XML 属性从 SOAP 请求读取到 WCF 服务
【发布时间】:2012-03-18 04:36:04
【问题描述】:

我有一个带有 MessageBodyMember 属性集的 MessageContract 类。 传入的 soap 请求有一个 XML 元素,如下所示:

<level num="3">error</level>

MessageContract 中错误级别的属性如下所示:

[MessageBodyMember(Name="level", Order = 6)]
public string ErrorLevel { get; set; }

我想读取属性“num”的值,而不是字符串“error”。有没有办法做到这一点?

【问题讨论】:

  • 如果你得到一个 Xml,你可以将 xml 加载到 XDocument 中,然后使用 Linq 找到合适的节点来获取它的值和属性值

标签: c# wcf soap


【解决方案1】:

你可以使用这个类来构造一个 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 语句。

【讨论】:

  • (这些是 Sayak 也提到的相同的 LINQ 类)
  • Rajesh 也提到了...对不起
  • 是的,但是如何将传入的 SOAP 请求转换为 XElement? VS 收到请求后会自动将 XML 解析为实体。
猜你喜欢
  • 2011-07-26
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多