asp.net Динамическая конфигурация MVC / пользовательский интерфейс

#asp.net-mvc #dynamic

#asp.net-mvc #динамический

Вопрос:

У меня есть плагины, которые реализуют IPlugin (IMenuPlugin, IThemePlugin и т.д.). Я хочу, чтобы каждый плагин предоставлял моему приложению настраиваемые свойства, которые будет использовать мое приложение, и предоставлял пользовательский интерфейс для редактирования / обновления.

Я думаю, что каждая реализация должна предоставлять список редактируемых файлов (определяемых интерфейсом). Каждый редактируемый шаблон должен содержать имя шаблона (EditorFor() и т.д.). Затем я хочу перечислить их все, отобразить шаблоны, затем отправить значения обратно в контроллер, чтобы сохранить значения для плагина.

Ваши мысли? Есть ли сейчас что-нибудь похожее?

Ответ №1:

Я предполагаю, что это что-то похожее на то, что вы предлагаете, но я запутался в формулировке.

Я бы сказал, что вам следует просто создать другой интерфейс для IPluginProperty , а затем добавить в IPluginProperty него коллекцию IPlugin s, доступную только для чтения. IPluginProperty Интерфейс мог бы тогда иметь свойство для предоставления IPropertyEditor для свойства:

 public interface IPluginEditor
{
    // interface members
}

public interface IPluginProperty
{
    IPluginEditor Editor { get; }

    // Rest of interface members
}

public interface IPlugin
{
    IEnumerable<IPluginProperty> Properties { get; }

    // Rest of interface members
}
  

Комментарии:

1. Я знал, как писать код, мне просто было интересно, существуют ли какие-либо библиотеки.