gpt4 book ai didi

c# - 简化类结构

转载 作者:行者123 更新时间:2023-11-30 22:28:06 25 4
gpt4 key购买 nike

我已经设置了一个配置系统,它将从 MySQL 数据库中获取配置。我已经让它工作了,但现在我意识到要从缓存中获取值,我必须使用这段冗长而困惑的代码。

CacheLayer.Instance.Caches["app_config"].Current.EmailALertInterval

我想删除Current,但我还没有弄清楚是否可以让类直接执行此操作。目前的实现看起来像这样。

public T Current
{
get
{
if (_current == null)
{
ReloadConfiguration();
}

return _current;
}
}

但我想简单地说一下:

CacheLayer.Instance.Caches["app_config"].EmailALertInterval

我正在看这样的东西,但这只适用于索引器。

public T this[T key]

编辑:为了添加更多上下文,我将添加更多代码。

这是缓存层。它本质上允许我存储多个配置。例如,我可能有一个通用应用程序配置,但我也可以获取一组使用的电子邮件。

public Dictionary<String,IGenericCache<dynamic>> Caches
{
get
{
return _caches;
}
}

public void AddCache(String config)
{
_caches.Add(config,new GenericCache<dynamic>(config));
}

在我的 GenericCache 中,我使用存储在 MySQL 数据库中的 JSON 字符串加载配置。

_current = JsonConvert.DeserializeObject<T>(db.dbFetchConfig(config));

GenericConfigT 而不是 dynamic 的原因是因为我希望能够在 之外进行自定义实现>CacheLayer,不一定使用dynamic

关于我希望如何使用它的另一个示例。

List<String> EmailList = CacheLayer.Instance.Caches["EmailList"].Current;

这实际上会从 MySQL 中获取一个包含电子邮件列表的 JSON 数组。

有什么想法吗?

最佳答案

添加新属性

public int EmailALertInterval
{
get { return Current.EmailALertInterval; }
}

关于c# - 简化类结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969602/

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