2016-12-14 48 views
0

我正在创建一个将被其他人使用的类库DLL。我不知道该项目将会是什么,项目名称将会是什么等等。当所有这些都说完之后,我将要做的就是将任何项目的DLL交给他们参考。在运行时读取和写入DLL值的最佳方法

现在的问题是,我需要一种方式让我的DLL能够在运行时读取和加载项目中的键/值。该项目将键/值传递给我的DLL,并说DLL将执行这些键/值的读取和写入。我发现,有多种方法可以做到这一点:

1)设置用户设置/ AppConfig的

2)创建一个新的XML文件的读写从

然而这两种方式不自动化。纠正我,如果我错了:

对于1)项目方将不得不手动创建一个设置文件与我的DLL需要的键/值。

对于2)项目端将不得不手动创建一个XML文件与我的DLL需要的键/值。另外我的DLL需要知道引用它的项目保存XML的位置(以便我可以从DLL读取和写入)

这是我需要帮助的地方。有没有一种方法可以在运行时从我的DLL中读取和写入值,而无需执行任何手动工作?如果不是,那么最好的方法是什么呢?将设置文件移交给将引用我的DLL的人员?

谢谢!

+0

你的dll中获取/设置值的方法怎么样? – Pikoh

回答

1

那么,客户端(该项目使用你的dll)将不得不做东西为了使用你的DLL,正确。 您的选择是定义一种配置方式或更改界面,以便调用者可以直接提供键值对。您仍然可以使用消费应用程序的配置文件中的应用程序设置。您的DLL可以通过使用System.Configuration.ConfigurationManager来访问它们,而无需知道应用程序运行的位置。 其他项目唯一需要做的就是在配置中提供你需要的设置。 但是,也许你可以详细阐述你实际尝试做什么,“阅读价值”并不是很具体。

+0

贝杰先生。每个客户端都有自己的“本地设置文件”,其中包含存储在Web上的数据库中的“名称”,“ID”等键/值,并将副本加载到项目中的文件中。用户从项目exe中更改他们的“名称”,我的DLL会将其上传到数据库并更新本地设置文件。同时,我的DLL需要能够从本地设置文件中读取某些检查,在将它上传到数据库之前,它的名字是否与旧名称相同? – Moo33

+0

好吧,在这种情况下,你的DLL也很容易成为配置文件的维护者,所以你的接口会公开方法来改变数据(即YourClass.SetUserName(string)')。当调用时,你的方法应用验证,同步本地配置文件和数据库。 为了获得当前配置,调用应用程序将查询你的组件(即'YourClass.GetCurrentConfig() ') –

+0

你的意思是有一个单独的配置文件为我的DLL?我已经尝试将我的dll.config设置为“始终复制”,但似乎并未出现在我的输出文件夹中。或者你的意思是,将项目的Settings文件的引用传递给我的dll? – Moo33

相关问题