.net 当我的dll被引用时,我是否可以将web/app配置值自动添加到项目中?

.net 当我的dll被引用时,我是否可以将web/app配置值自动添加到项目中?,.net,configuration,reference,.net,Configuration,Reference,如果一个应用程序有一个dll,它取决于运行时是否存在一组小的应用程序设置键,或者是否存在一个小的自定义xml部分,当引用发生时,我是否可以在我的程序集中响应一个事件,我可以使用该事件写入项目的配置文件,以确保默认值存在?dot net frame work不提供写回配置文件的方法。。然而,它只是一个XML文件,dot包含了许多函数,进行快速搜索时会发现不行,这是有原因的 如果库可以更改我的应用程序配置文件,我会很害怕。如果我正在动态生成它呢?如果另一个实用程序从网上下载呢?如果我用的是什么?如果

如果一个应用程序有一个dll,它取决于运行时是否存在一组小的应用程序设置键,或者是否存在一个小的自定义xml部分,当引用发生时,我是否可以在我的程序集中响应一个事件,我可以使用该事件写入项目的配置文件,以确保默认值存在?

dot net frame work不提供写回配置文件的方法。。然而,它只是一个XML文件,dot包含了许多函数,进行快速搜索时会发现

不行,这是有原因的

如果库可以更改我的应用程序配置文件,我会很害怕。如果我正在动态生成它呢?如果另一个实用程序从网上下载呢?如果我用的是什么?如果您的代码明显错误,并且弄乱了我现有的设置,该怎么办

毕竟,如果我不希望我的应用程序有一个配置文件,该怎么办?如果我的应用程序是SharePoint web部件或某个网站插件,并且无法从开发环境访问(生产)web.config

如果您认为您的库确实需要XML配置,但实际上需要调用应用程序来提供这些设置。创建一个设置类,库调用者可以将其用作指定XML配置的替代方案,并在其中假定默认值。引入某种静态属性来保存这些设置


举个好例子。它允许使用and指定设置,这两个设置同样可以驻留。这对你来说可能是一种过度的杀伤力;我只是说<>强>在坚持一个特定的配置解决方案之前,你应该考虑所有用例,

< p>而你所要求的特定内容(在程序集中实现自定义引用逻辑)是不可能的,你描述的用例(有些库确实需要主机应用程序提供一些配置设置)是非常常见的。幸运的是,有一个出色的.Net包管理器,它提供了一种非常简洁的方法来实现这一点

它只需要创建一个包含程序集的包,然后使用NuGet Visual Studio扩展来引用该包

有关如何创建包的介绍,请参阅。link将准确地向您展示如何向NuGet包添加配置文件转换


NuGet也被广泛地介绍,因此您应该可以轻松地找到所有要开始的内容。

当然,我想找的是一种方法,在项目向我的程序集添加引用时,编写一个项目的xml文件来添加我的密钥。当然,但是如果您成功地做到了这一点,您是否会在知道构建目录的位置时遇到问题,当用户从debug更改为release时,build(config)目录会更改…调用函数时,最好查看配置文件是否存在,如果不存在,则创建它(通过链接)@spacemonkey:对于某些库来说,在运行时修改
App.config
更糟糕。这在最好的情况下是意外的,在最坏的情况下是不可能的。@Dan我不得不同意,但我只是在回答这个问题(尽管你的回答更好)VS不为您处理这些东西吗?我处理的是使用反射进行后期绑定的多投影解决方案,我从来没有遇到过配置文件的问题我问的原因是我知道VS ide在添加引用时会对应用程序/web配置进行编辑,所以我想也许我们可以在程序集中使用它。我想VS是taking基于某些元数据或内置逻辑的操作。@ServiceGuy我会研究它的,谢谢。我知道这是一个不寻常的请求,所以像这样跳过跳跃对我来说很好。