У меня тут загадка, и я даже не уверен, что это возможно.
Я разрабатываю приложение на основе плагинов, в котором все плагины будут иметь доступ (чтение / запись) к общей конфигурации приложения хоста. Существуют более простые способы решения проблемы, которую я представляю, но, поскольку это не связанный с работой проект, я могу поиграть:)
Допустим, у нас есть Plugin_A
, который наследует PluginBase
абстрактный класс. Абстрактный класс предоставляет свойство IConfiguration Config
, к которому плагин может получить доступ для записи в эту общую конфигурацию. IConfiguration Config
правильно устанавливается хостом при загрузке плагина, чтобы ограничить доступную конфигурацию, к которой будет обращаться конкретный плагин.
Я хотел бы попробовать использовать ключевое слово Dynamic в C # 4.0, чтобы без проблем написать класс конфигурации.
в псевдо-коде C # вот чего я хотел бы достичь
public class Plugin_A: PluginBase
{
public void DoSomethingWithConfig()
{
ShowAMessageBox(Config.SomeMessage);
Config.HasShownMessage = true;
}
}
Теперь - в этом примере я не хочу фактически определять .SomeMessage
и .HasShownMessage
, а хочу, чтобы они были динамическими и возвращались при вызове.
Это кажется натяжкой, но возможно ли это вообще?