2016-05-29 72 views
0

我有一个类从数据库中检索某些设置(用户名和密码)。这个数据库位于网络上,这意味着如果密码改变了,我可以简单地在数据库中修改它,所有使用这个类的应用程序仍然可以工作。特定于类的设置

我充分意识到将用户名和密码存储在数据库和单独位置的优点和缺点。我不想讨论这些。

该类有一个硬编码的静态字符串,它是数据库的路径。它是完全合格的网络名称(不只是驱动器号)。我这样做是因为我们有一个问题,我们的网络DNS被搞砸了,而驱动器映射映射停止工作,并且有些人无论如何都有不同的驱动器映射。

我们最近有我们的服务器移动,所以我现在需要通过并更改这些硬编码的字符串。

我在想,我应该将路径存储在设置/配置文件中。我考虑过“application.settings”,但它不是一个应用程序设置;其具体到班级。在现有的.Net框架(这是一个C#问题)中是否有这样做的首选方法?

我可以简单地在应用程序目录中放置一个小文本或XML文件,这可能很好......是否有现有的框架名称空间或有人知道我可以使用的开放源代码片段?

回答

0

我想,如果你想要类特定的配置,你应该尝试让那些类实例,配置驱动。另一种思考方式,但;在配置文件中定义将创建定义的类名的实例。

例如:创建一个部分,并调用它,<Modules>和像创建项目:<module type="<namespace>.DBConvertor" param="username=root;passwd=whatever">这种类型将在启动创建(你在这里需要一些编码)。甚至可以通过特定的配置同时创建多个实例。

这种配置已经实现: 您不妨来看看这个:“如何创建自定义配置节使用的ConfigurationSection”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,但在这种情况下可能略高于顶端)。

+0

谢谢。我已经阅读过,并且我还没有完全清楚如何充分利用它。这是.aspx具体吗?它似乎是一种允许配置文件驱动创建类的手段(尽管它显然允许保存设置)。我想我更加关注如何让一组“设置”通过一个类来管理,而不是通过附加的应用程序进行管理。 – ainwood