デシリアライズは次のようになります。
var serializer = new XmlSerializer(typeof(T));
T obj = (T)serializer.Deserialize(new StringReader(value));
プロパティの設定はさまざまな方法で行うことができます。推奨されるのは、タイプ間でいくつかの共通点、おそらくインターフェースを持つことです。
interface IFoo {
string property1 { get; }
}
と:
T DeSeriableXMLToObject<T>(string value) where T : IFoo {
var serializer = new XmlSerializer(typeof(T));
T obj = (T)serializer.Deserialize(new StringReader(value));
if(obj.property1 == "200") { ...}
return obj;
}
別の方法はリフレクションまたはdynamic
:
T DeSeriableXMLToObject<T>(string value) {
var serializer = new XmlSerializer(typeof(T));
dynamic obj = serializer.Deserialize(new StringReader(value));
if(obj.property1 == "200") { ...}
return obj;
}
ところで; DeSeriableXMLToObject<T>
名前としてはちょっとファンキーに見えます。ただ提案してもいいですDeserialize<T>
かDeserializeXml<T>
?