我有一个类,我从数据库中检索某些设置(用户名和密码)。这个数据库位于网络上,这意味着如果密码被更改,我只需在数据库中更改它,所有使用该类的应用程序仍然有效。
我完全了解在数据库和单独位置存储用户名和密码的优缺点。我不想讨论那些。
该类具有硬编码的静态字符串,该字符串是数据库的路径。它是一个完全合格的网络名称(不仅仅是驱动器号)。我这样做是因为我们遇到了一个问题,我们的网络DNS被搞砸了,驱动器号映射停止了,有些人还有不同的驱动器映射。
我们最近移动了服务器,因此我现在需要通过并更改这些硬编码字符串。
我原以为我应该将路径存储在设置/配置文件中。我考虑过“application.settings”,但它不是应用程序设置;它具体到班上。在现有的.Net框架中是否有一种首选的方法(这是一个C#问题)?
我可以简单地在应用程序目录中放置一个小文本或XML文件,这可能很好......有没有人知道我可以使用的现有框架命名空间或开源代码片段?
答案 0 :(得分:0)
我认为,如果你想要特定于类的配置,你应该尝试让那些类实例,配置驱动。另一种思维方式但是;在配置文件中定义 something ,将创建已定义类名的实例。
例如:创建一个部分,并调用它,<Modules>
并创建项目,如:<module type="<namespace>.DBConvertor" param="username=root;passwd=whatever">
此类型将在启动时创建(您需要在此处进行编码)。甚至可以使用它的特定配置同时创建多个实例。
这种配置已经实现: 您可以看一下:&#34;如何:使用ConfigurationSection创建自定义配置部分&#34; https://msdn.microsoft.com/en-us/library/ 2tw134k3.aspx
从类型名创建实例,使用Activator
类。
除此之外,还有很多模块/插件库,(例如Managed Extensibility Framework (MEF)
https://msdn.microsoft.com/en-us/library/dd460648(v=vs.110).aspx,但在这种情况下可能略高于顶部。)