sgen.exe がジェネリック型 XmlSerializer を生成できなかったようですね。
私の一般的なタイプ:
[Serializable]
[XmlRoot(ElementName = "Masterx")]
public class Masterx<T> where T : class, new()
{....}
シリアライザ コード:
protected virtual List<T> ParseXMLToObject<T>(string resultXML) where T : class, new()
{
//return ParseXMLToObject<T>(resultXML, "Masterx");
XmlSerializer xs = new XmlSerializer(typeof(Masterx<T>));
System.IO.StringReader sr = new System.IO.StringReader(resultXML);
XmlReader xr = XmlReader.Create(sr);
Masterx<T> masterx = null;
if (!string.IsNullOrEmpty(resultXML))
{
if (xs.CanDeserialize(xr))
{
//Parse the xml to object
masterx = xs.Deserialize(xr) as Masterx<T>;
}
}
List<T> rtnObjList = new List<T>();
if (masterx != null)
{
rtnObjList = masterx.MasterxRowList;
}
return rtnObjList;
}
sgen.exe を実行し、"Reflector" を使用して生成されたアセンブリを確認した後、生成されたアセンブリに MasterxXmlSerializer クラスが含まれていないことがわかりました。なぜですか?
誰かが同じ経験をしていますか?修正方法は?