我使用MEF和compose parts,并获得了几个IEnumerable<Lazy<IFoo, IMetaData>> (我有几个导入)。我喜欢将所有组合部分合并到一个IEnumerable<Lazy<dynamic, IMetaData>>类型的集合中。如果不调用/实例化实现IFoo或其他接口的实际对象,这是可能的吗?
我希望设置一个大型的可组合部件集合,但在实际请求它们之前,我不喜欢实例化它们。(请看我的相关问题:MEF, why are identical duplicates of one and the same exported plugin created?
发布于 2013-05-08 12:54:13
您应该能够通过使用以下命令来实现此目的:
from enumerable in enumerables
from lazy in enumerable
select new Lazy<dynamic, IMetaData>(() => lazy.Value, lazy.Metadata)不幸的是,我手头没有MEF,所以如果你会有任何编译问题,请让我知道。请注意,lazy.Value是在委托中传递的,因此在需要之前不会进行计算。
https://stackoverflow.com/questions/16416731
复制相似问题