【问题标题】:Read file and save it in memory读取文件并将其保存在内存中
【发布时间】:2016-07-26 18:04:26
【问题描述】:

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

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

【问题讨论】:

  • 使用静态变量并在读取时检查该变量是否为空,从文件中读取
  • 读取所有内容(反序列化 Settings 类)或在数据太大而无法容纳时组织缓存。

标签: c# performance caching memory


【解决方案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) {
            ...
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多