gpt4 book ai didi

c# - 集中 MEF 组合

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:42 26 4
gpt4 key购买 nike

目前我拥有的所有类都处理它们自己的导入。使用一个典型的例子:

[ImportMany]
private Lazy<ISomeInterface>[] someOfMyInterfaces { get; set; }
public MyConstructor()
{
AssemblyCatalog catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(this);
}

现在,我想使用聚合目录并需要更改所有采用导入的类的实现。我想把这个逻辑放在一个集中的地方。基本上消除了我的类(class)对自己组成部分的依赖。有什么好的模式可以实现这一目标吗?

最佳答案

是的,您绝对不想在每个部分中创建一个容器。相反,尝试让每个带有导入的部分也有一个由另一个部分导入的导出。然后在您的启动代码中创建一个容器并从中提取根导出,这将导致创建所有其他部分并在需要时满足它们的导入。

关于c# - 集中 MEF 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com