可移植类库,XmlAnyElementAttribute
在可移植类库中 ,我有一个包含具有XmlAnyElement
属性的成员的类。
public partial class VariableWebServiceResponse { private List anyField; public VariableWebServiceResponse () { this.anyField = new List(); } [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] public List Any { get { return this.anyField; } set { this.anyField = value; } } }
这种类在.NET 4.0中完美运行,因此我的代码如下:
private T Deserialize(VariableWebServiceResponse response) { var name = typeof(T).Name; var element = response.Any.SingleOrDefault(x => x.Name == name); return Deserialize(element.OuterXml); } private static T Deserialize(string xml) { return (T)new XmlSerializer(typeof(T)).Deserialize(new StringReader(xml)); }
现在的问题似乎是PCL不支持XmlElement
。 那么如何在PCL中实现相同的结果呢?
这么晚才回复很抱歉。 正如您已经注意到,您无法在可移植设备中使用XmlElement,这是因为它仅在.NET Framework中可用。 Silverlight,Phone和Windowsapp store应用不会公开此类型。
但是,我们确实有一个替代品,当在可移植的目标.NET 4.0.3及更高版本(需要获得XLINQ支持)时,您可以使用XElement *替换XmlAnyElementAttribute。
*我刚刚提交了一个错误,使文档中的内容更加清晰。
- MVC错误“属于’System.Int32’类型,但必须是’IEnumerable ‘类型。 “
- 如何在C#中使用XmlSerializer将字节数组序列化为XML?
- 无法在C#ASP.NET中绑定多部分标识符“TextBox1.Text”?
- 输入键触发“登录”按钮
- ImageList / Image OutOfMemoryException
- 从Entity Framework 4.1 Code First中的NotMapped类派生实体类
- 为什么这个string.Format()没有返回字符串,而是动态的?
- 声明中缺少部分修饰符..此类型的另一部分声明存在“。我是初学者,只是跟着这本书
- 为什么我不能在没有括号的插值字符串中使用条件运算符?