c# Создание класса из объекта унаследованных классов - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь реализовать пользовательский класс конфигурации, который бы наследовал 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>

1 Ответ

1 голос
/ 30 апреля 2020

Лично мне нравится добавлять статистический c геттер, который выбирает конфигурацию внутри моего раздела:

public class MyConfigurationClass : ConfigurationSection
{
        public static MyConfigurationClass Instance { get; } =
            ConfigurationManager.GetSection("Config") as MyConfigurationClass;

        // other configuration properties
}

А потом я просто звоню MyConfigurationClass.Instance.Property

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...