0

XML ファイルを開いて逆シリアル化するには、次の方法があります。

private static object DeserializeFile(string fileName, Type type)
{
    Stream openFile = TitleContainer.OpenStream(fileName);
    XmlSerializer reader = new XmlSerializer(type);
    return reader.Deserialize(openFile);
}

さまざまなオブジェクトを含むさまざまなファイルを開くために、何度も使用しています。現時点では、次の方法で使用する必要があります。

City gameCity = (City)DeserializeFile(GameData.CITIES_FILE, typeof(City));

メソッドがパラメーターとして渡された型にキャストされたオブジェクトを返すようにすることで、型キャストを回避できると感じています。ありがとう。

4

1 に答える 1

8

解決策は実際には非常に簡単です。

private static T DeserializeFile<T>(string fileName)
{
    Stream openFile = TitleContainer.OpenStream(fileName);
    XmlSerializer reader = new XmlSerializer(typeof(T));
    return (T)reader.Deserialize(openFile);
}

使用法:

City gameCity = DeserializeFile<City>(GameData.CITIES_FILE);
于 2013-02-19T23:00:04.203 に答える