Portable Class Libraryに、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));
}
現在の問題XmlElement
は、PCL でサポートされていないようです。では、PCL で同じ結果を得るにはどうすればよいでしょうか。