#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. Я знал, как писать код, мне просто было интересно, существуют ли какие-либо библиотеки.