我创建了一个可以在Windows或Web应用程序中使用的类库。 应该从类库中的大多数方法中调用app的app.config或web.config中读取类库所需的一些设置。 为了提高性能,我想缓存每个应用程序的一些设置信息。
我们怎么能这样做?一个建议是使用HttpRuntime.Cache对象。另一种方法可能是使用一些静态变量来存储数据,但它可能有AppDomain / Scope冲突问题..
所以,我不确定这样做的最佳方法是什么(注意它是一个可以在Windows或Web应用程序中使用的通用类)
答案 0 :(得分:0)
您确定在调用App.config成员时存在性能问题还是只是猜测?
如果编译正确,编译访问器实际上不会从配置类执行I / O,因为它们会生成编译属性,所以我认为这不是一个问题,我怀疑你会从缓存中获得性能。
答案 1 :(得分:0)
关于我是否应该在调用者的.config中存储类库设置,或者我是否应该在实例化时将该配置信息传递给类库,我遇到了很多内部冲突。一种解决方案是更改您的类库,以便在创建时获取其配置信息(调用应用程序仍然可以从其.config生成此信息)。这样您就可以让调用应用程序控制配置数据的缓存。
例如 - 网络应用程序为每个请求读取其web.config并将其作为配置对象传递,而Windows应用程序将其app.config读取到配置对象一次并将其存储在某处,以便它可以连续地重新实现库无需重新读取其app.config。