すべて-クラスの1つに次の2つのメソッドがあります。
public static void DeSerializeFromXml(out cDBData db, string pathToXML)
{
using (XmlTextReader reader = new XmlTextReader(pathToXML))
{
XmlSerializer ser = new XmlSerializer(typeof(cDBData));
db = (cDBData)ser.Deserialize(reader);
}
}
public static void DeSerializeFromXml(out cDatabases db, string pathToXML)
{
using (XmlTextReader reader = new XmlTextReader(pathToXML))
{
XmlSerializer ser = new XmlSerializer(typeof(cDatabases));
db = (cDatabases)ser.Deserialize(reader);
}
}
それらは正常に機能しますが、メソッドの戻り型に基づいてメソッドのオーバーロードを作成できないのはなぜだろうと思っていました。私はこれがどこかで可能であると読んだと思いましたが、それが機能しないので明らかに間違っています:
public static cDBData DeSerializeFromXml(string pathToXML)
{
cDBData db;
using (XmlTextReader reader = new XmlTextReader(pathToXML))
{
XmlSerializer ser = new XmlSerializer(typeof(cDBData));
db = (cDBData)ser.Deserialize(reader);
}
return db;
}
public static cDatabases DeSerializeFromXml(string pathToXML)
{
cDatabases db;
using (XmlTextReader reader = new XmlTextReader(pathToXML))
{
XmlSerializer ser = new XmlSerializer(typeof(cDatabases));
db = (cDatabases)ser.Deserialize(reader);
}
return db;
}
思いやりのある対応ありがとうございます
dlevのおかげで、これが最終的な解決策です
public static T DeSerializeFromXml<T>(string pathToXML)
{
T db;
using (XmlTextReader reader = new XmlTextReader(pathToXML))
{
XmlSerializer ser = new XmlSerializer(typeof(T));
db = (T)ser.Deserialize(reader);
}
return db;
}
public static void SerializeToXml<T>(T db, string pathToXML)
{
using (var fileStream = new FileStream(pathToXML, FileMode.Create))
{
var ser = new XmlSerializer(typeof(T));
ser.Serialize(fileStream, db);
}
}
検索警察がこの質問を閉じる前に、これらを投稿してもらいたかったのです。