问题描述
我有实现IPlugin的插件(IMenuPlugin,IThemePlugin等)。我希望能够让每个插件为我的应用程序提供可配置的属性,这些属性将被我的应用程序使用并为其提供编辑/更新UI。
我的想法是让每个实现都提供IEditable列表(由接口定义)。每个可编辑项都将提供模板的名称(EditorFor()等)。然后,我想枚举所有这些对象,呈现模板,然后将值发布回控制器以保存插件的值。
你的想法?现在有类似的东西吗?
解决方法
我猜想这与您的提议类似,但是我对措辞感到困惑。
我要说的是,您应该简单地为
IPluginProperty
创建另一个接口,然后向IPlugin
中添加一个IPluginProperty
的只读集合。然后,“ 0”接口可以具有一个属性来为该属性提供“ 4”:
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
}