Чего не хватает в MEF быть на одном уровне с контейнерами IoC?

MEF - это не контейнер IoC . Но кажется, что это почти контейнер IoC. Кажется, что я могу легко заставить MEF вести себя как контейнер IoC (см. Пример ниже), и не так много упущений, чтобы сделать MEF полноценным контейнером IoC.

Какие фактически отсутствующие в MEF функции, которые StrucureMap, Unity и т. Д. Должны быть на одном уровне?

Как вы думаете, этот запрос функции имеет смысл?

using System;  
using System.Collections.Generic;  
using System.ComponentModel.Composition;  
using System.ComponentModel.Composition.Hosting;  
using System.ComponentModel.Composition.Primitives;  
using System.Linq;  
...
private CompositionContainer container;
public void Configure()  
{  
    container = CompositionHost.Initialize(  
        new AggregateCatalog(
            AssemblySource.Instance.Select(
              x => new AssemblyCatalog(x)).OfType()));       
        var batch = new CompositionBatch();        
        batch.AddExportedValue(new WindowManager());  
        batch.AddExportedValue(new EventAggregator());  
        batch.AddExportedValue(container);        
        container.Compose(batch);  
 }  

6
задан Community 23 May 2017 в 10:33
поделиться