How do I add custom ConfigurationSection to Assembly?
我花了几个星期的时间试图弄清楚这个问题,这是我以前问过的问题的副本,但没有得到答复,所以我在这里提炼这个问题。
我创建了一个自定义类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; using System.Configuration; namespace mssql_gui { public class TestConfigSection : ConfigurationSection { [ConfigurationProperty("", IsRequired = true, IsDefaultCollection = true)] public TestConfigInstanceCollection Instances { get { return (TestConfigInstanceCollection)this[""]; } set { this[""] = value; } } } public class TestConfigInstanceCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new TestConfigInstanceElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((TestConfigInstanceElement)element).Key; } } public class TestConfigInstanceElement : ConfigurationElement { [ConfigurationProperty("key", IsKey = true, IsRequired = true)] public string Key { get { return (string)base["key"]; } set { base["key"] = value; } } [ConfigurationProperty("value", IsRequired = true)] public string Value { get { return (string)base["value"]; } set { base["value"] = value; } } } } |
我已经实现了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="testSection" type="mssql_gui.TestConfigSection"/> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> </startup> </appSettings> <testSection> </testSection> </configuration> |
我已经尝试过访问它,我得到:
0我知道在类型中,应该声明一个程序集dll,但我对此感到困惑…因为在MS的官方指令中,它说要为处理程序创建一个新类:
Create a public class that inherits from the
System.Configuration.ConfigurationSection class.Add code to define the section's attributes and elements.
添加类(至少通过Visual Studio界面)将创建.cs文件,而不是.dll程序集文件,那么如何将该自定义类添加到程序集文件中,以便在app.config的
如果我理解正确,您就无法解决实际的
装配(也许不是很精确的shortcut)只是你解决方案中的项目。它将被编译成单独的程序集-您提到的.dll-稍后。当您将类添加到给定项目中的任何
默认情况下,如果您不为应该找到对应类型的
在Visual Studio中,右键单击保存
然后将此名称添加到您的
1 2 3 | <configSections> <section name="testSection" type="mssql_gui.TestConfigSection, ConsoleApp1"/> </configSections> |
0
需要将程序集的名称(类型所依赖的位置)添加到类型属性:
您将从定义testconfigSection类的项目中的assemblyinfo.cs获取程序集的名称。
1 | <section name="testSection" type="mssql_gui.TestConfigSection, ASSEMBLYNAME"/> |
示例计算程序集名称mssql_gui
1 | <section name="testSection" type="mssql_gui.TestConfigSection, mssql_gui"/> |
你是这样读的:
2有关详细信息,请访问msdn。
如何:使用配置节创建自定义配置节