当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。

从app.config加载值和从对象加载值有区别吗?

admin 92℃
这是我的应用程序。配置:

<appSettings>
    <add key="PreRootFolder" value="D:\" />
    <add key="RootFolder" value="webSite" />
    <add key="Folder" value="folder_a" />        
</appSettings>

因为我更喜欢在应用程序中构建路径,而不是在路径的每个部分都有许多键…(很难维护)因此我以这种方式构建路径:

string prePath = ConfigurationManager.AppSettings["PreRootFolder"];
string rootFolder = ConfigurationManager.AppSettings["RootFolder"];
string folder= ConfigurationManager.AppSettings["Folder"];

// global param (actually accessed by ((MainFormName)mainParent)).g_fullOriginalRoot         
string g_fullOriginalRoot = prePath + "\" + rootFolder + "\" + fodler; 

我在应用程序MDI父窗体中执行此操作(因此它不会消亡)

我这样做是因为我发现我多次调用这些键,现在我可以从家长那里获取数据。

我想知道,我的解决方案是否正确?

app.config参数是否加载为全局参数?

在这种情况下,使用全局可访问(静态或单例)对象来记录设置是合理的。

当通信是单向的(只读设置或只写日志记录是典型的情况)时,globals的许多缺点就不那么严重了。此外,由于设置本身是全局的,因此它与正在建模的内容相匹配。

不过,我宁愿在自己的类中完成,而不是在mdi表单中完成。表单应该模拟与表单相关的内容,其他对象应该模拟其他关注点。

另一个需要考虑的问题是,在应用程序运行时更改此值是否有效。您想允许用户更改值并让应用程序获取新值,还是让应用程序在启动时加载该值,然后假设该值在应用程序运行期间不会更改就足够了。

当然,对于长时间运行的应用程序,这种考虑比短时间会话的应用程序更为重要。

转载请注明:我的代码 » 从app.config加载值和从对象加载值有区别吗?