读取文件并将其保存在内存中

时间:2016-04-06 11:09:44

标签: c# performance caching memory

我的应用程序使用自定义.xml设置文件,我从中读取了一些内容。现在它每次都从文件中读取并影响性能。将文件保存到缓存中并从那里读取的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:1)

我通常会声明一个设置类。然后在启动时我读取配置文件并将其反序列化为Settings对象并将其保存在静态变量中。

通过这种方式,您只需访问所有地方的房产即可访问您的设置。

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) {
            ...
        }
    }
}