【发布时间】:2016-09-01 21:56:59
【问题描述】:
我有以下问题需要一些建议。
我有一个配置,其中包含由标准 IPlugin 接口结构定义的大量插件。 这些接口中的每一个都需要访问大量定义许多属性的外部类 自定义类型。此外,这些类继承自许多基类。
这里的问题是关于如何将这些属性类呈现给每个插件的设计 为了完全访问这些结构。
为了稍微扩展一些类有多个列表,为了便于讨论,最多有 50 个列表,每个列表都有子项 30 到 60 种不同的特性。
现在我当然可以将所有属性类作为依赖项移动到接口类,但作为大多数这些类 继承它成为一个可怕的解决方案。作为 ref 对象传递似乎也不是一个可行的解决方案。
我没有包含任何特定的代码,因为我认为它不会有帮助,但这里是我需要的一个小 psudo 版本 达到。
public interface IPlugin
{
ResultsList PluginProcess(Class1 L1, Class2 L2, ...);
}
class(n) 可能是
public class Class1 : SomeOtherClass
{
public object1 obj1 {get; set; }
...
public object50 obj50 { get; set;}
}
主要由其他派生对象组成。
在插件中我需要能够使用诸如
之类的代码L1.classes.data[0].codec[2].enabled = true;
and
L2 newclass2 = new L2();
newclass2.nnnn ...
ResultsList.classes.Add(newclass2);
最后我需要使用插件架构,以便第三方提供数据的自定义处理。
欢迎提出任何建设性的建议。
【问题讨论】:
标签: c# object plugins properties reference