gpt4 book ai didi

c# - 可移植类库,XmlAnyElementAttribute

转载 作者:行者123 更新时间:2023-11-30 22:25:27 25 4
gpt4 key购买 nike

可移植类库中,我有一个包含具有XmlAnyElement 属性的成员的类。

public partial class VariableWebServiceResponse {

private List<System.Xml.XmlElement> anyField;

public VariableWebServiceResponse () {
this.anyField = new List<System.Xml.XmlElement>();
}

[System.Xml.Serialization.XmlAnyElementAttribute(Order=0)]
public List<System.Xml.XmlElement> Any {
get {
return this.anyField;
}
set {
this.anyField = value;
}
}
}

这种类型的类在 .NET 4.0 中工作得很好,所以我有这样的代码:

    private T Deserialize<T>(VariableWebServiceResponse response)
{
var name = typeof(T).Name;
var element = response.Any.SingleOrDefault(x => x.Name == name);
return Deserialize<T>(element.OuterXml);
}

private static T Deserialize<T>(string xml)
{
return (T)new XmlSerializer(typeof(T)).Deserialize(new StringReader(xml));
}

现在的问题似乎是 PCL 不支持 XmlElement。那么如何才能在 PCL 中获得相同的结果呢?

最佳答案

抱歉回复晚了。正如您所注意到的,您不能在可移植中使用 XmlElement,这是因为它仅在 .NET Framework 中可用。 Silverlight、Phone 和 Windows Store 应用程序不公开此类型。

但是,我们确实有一个替代品,当以可移植的 .NET 4.0.3 及更高版本为目标时(这是获得 XLINQ 支持所必需的),您可以使用 XElement* 作为 XmlAnyElementAttribute 的替代品。

* 我刚刚提交了一个错误,以便在文档中更清楚地说明这一点。

关于c# - 可移植类库,XmlAnyElementAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com