gpt4 book ai didi

c# - 应用程序设置界面

转载 作者:太空狗 更新时间:2023-10-30 01:25:12 24 4
gpt4 key购买 nike

Reed Copsey 对以下 SO 问题给出了此回复:

Which design patterns can be applied to the configuration settings problem?

I prefer to create an interface for setting query, loading, andsaving. By using dependency injection, I can inject this into eachcomponent that requires it.

有人可以给出这方面的代码示例吗?例如,电子邮件客户端的设置类和 FTP 客户端的另一个设置类基于这个可以是 DI 的“接口(interface)”。我知道您可以为应用程序中的所有设置做一个全局单例(我目前正在做)但是 Reed 的这个建议很有趣并且想尝试一下。

最佳答案

对于界面,我会做这样的事情:

public interface ISettingsProvider
{
void Load();

T Query<T>(string key);
void Set<T>(string key, T value);

void Save();
}

然后我将实现该接口(interface)一次,并使用 MEF 进行依赖注入(inject)。我想我会用 LinqToXml 实现它以加载/保存到 XML,并且可能有一个字典来缓存内存中的设置。另一种方法是二进制序列化您的对象并在某处转储快照(这有缺点,例如,它不是人类可读的)。

如果您只保存字符串和/或数字,XML 是一个不错的选择。如果您只有字符串,您甚至可以放弃泛型。

关于c# - 应用程序设置界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com