【发布时间】:2020-04-30 18:06:54
【问题描述】:
我正在尝试实现一个自定义配置类,它将继承 System.Configuration.ConfigurationSection 作为其基类。
public class MyConfigurationClass: System.Configuration.ConfigurationSection
{
MyConfigurationClass()
{
}
}
我一直在创建这样的类对象:
MyConfigurationClass Config = System.Configuration.ConfigurationManager.GetSection("Config") as MyConfigurationClass;
我想把它移到我的类的构造函数中,这样就不用调用了:
MyConfigurationClass Config = System.Configuration.ConfigurationManager.GetSection("Config") as MyConfigurationClass;
我可以打电话:
MyConfigurationClass Config = new MyConfigurationClass("Config");
同样的结果。
继承System.Configuration.ConfigurationSection 的元素很关键。
有什么建议吗?
编辑: 我正在尝试使用统一映射来初始化此类的默认实例,然后使用接口对此类进行后续调用。我的接口是固定的,不能修改,所以只能使用构造函数来创建类...
从unity.config 文件注册到统一框架:
<register type="MyNameSpace.IConfig, MyProject" mapTo="MyRealNameSpace.MyConfigurationClass, MyRealProject">
<lifetime type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />
</register>
【问题讨论】:
-
我不明白你的问题。你能详细说明你的期望吗?你的代码应该是什么样的?你到底想隐藏什么?
-
我希望
MyConfigurationClass Config = System.Configuration.ConfigurationManager.GetSection("Config") as MyConfigurationClass;的初始化在MyConfigurationClass的构造函数中完成,这意味着当我调用MyConfigurationClass Config = new MyConfigurationClass("Config");时,它会创建MyConfigurationClass Config,就像使用我当前的语句一样:MyConfigurationClass Config = System.Configuration.ConfigurationManager.GetSection("Config") as MyConfigurationClass;
标签: c# inheritance refactoring new-operator