我需要将配置信息添加到程序集本身,而不包含其app.config文件。 我该怎么办?
修改 我需要这样的东西
string config = @"<?xml version='1.0' encoding='utf-8'?>
<configuration>
.
.
.
.
</configuration>";
将此硬编码字符串配置设置为当前程序集配置
答案 0 :(得分:3)
配置设置是用户或应用程序设置默认情况下在程序集中默认值为“硬编码”。可以通过包含app.config或在运行时修改用户设置并保存到用户配置文件来覆盖它们。
创建项目设置后(在项目属性中并转到“设置”选项卡),将生成一个Settings
类,其中包含您配置的默认值的静态属性。
它们可以在整个装配过程中访问,如下所示:
Assert.AreEqual(Properties.Settings.MySetting, "MyDefaultValue");
可以通过app.config重写这些默认值:
<applicationSettings>
<MyProject.Properties.Settings>
<setting name="MySetting" serializeAs="String">
<value>MyDefaultValue</value>
</setting>
</MyProject.Properties.Settings>
</applicationSettings>
要回答您的问题:您可以省略从应用程序部署中包含app.config,配置设置时提供的默认值是硬编码的。
修改强>
注意到你确实想从程序集中读取整个 app.config。 可能的方法如下:
// 1. Create a temporary file
string fileName = Path.GetTempFileName();
// 2. Write the contents of your app.config to that file
File.WriteAllText(fileName, Properties.Settings.Default.DefaultConfiguration);
// 3. Set the default configuration file for this application to that file
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", fileName);
// 4. Refresh the sections you wish to reload
ConfigurationManager.RefreshSection("AppSettings");
ConfigurationManager.RefreshSection("connectionStrings");
// ...
答案 1 :(得分:0)
您可以在自定义XML文件中存储设置,然后将其设置为嵌入式资源,以便在exe或dll中可用。
请参阅此处:How can I retrieve an embedded xml resource?以获取有关如何在运行时读取它的示例
修改并将其作为自定义配置文件加载,请点击此处:Loading custom configuration files