2016-04-06 15 views
0

私のアプリケーションでは、カスタムの.xml設定ファイルを使用しています。今のように毎回ファイルから読み込み、パフォーマンスに影響を与えます。ファイルをキャッシュに保存してそこから読み込む最良の方法は何ですか?ファイルを読み込んでメモリに保存する

public static class SettingsReader { 
    private static XDocument SettingsFile = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "\\Settings.xml"); 
} 
+0

静的変数を使用し、リードチェックでその変数がnullの読み取りの場合は、ファイルから – Damirchi

+1

読むのすべて( 'Settings'クラスを逆シリアル化)またはデータが収まるように大きすぎる場合キャッシュを整理します。 – Sinatr

答えて

1

通常、設定クラスを宣言します。次に起動時に設定ファイルを読み込み、それを設定オブジェクトに逆シリアル化して静的変数に保持します。

この方法で、すべての場所からプロパティにアクセスするだけで、設定にアクセスできます。

public class MySettings { 
    public string RemoteServerAddress { get; set; } 
    public int TcpCommunicationTimeout { get; set; } 
} 

public class Program { 
    public readonly static MySettings ProgramSettings { get; private set; } 

    static void Main(string[] args) { 
     var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MySettings)); 
     using(var stream = System.IO.File.OpenRead("config file path")){ 
      Program.ProgramSettings = (MySettings)serializer.Deserialize(stream); 
     } 
     SomeMethod(); 
    } 

    static void SomeMethod(){ 
     if (Program.ProgramSettings.TcpCommunicationTimeout > 5) { 
      ... 
     } 
    } 
} 
関連する問題