Search code examples
c#c#-4.0mef

Create Export in MEF (exportedValueGetter)


Trying to list all Exports in my Catalog

var exportDefs =  ObjectBase.Container.Catalog.Parts.Select(p => p.ExportDefinitions);

        foreach (var item in exportDefs)
        {
            foreach (var e in item)
            {
                Export ex = new Export(e,???);
            }

        }

Not sure on how to implement Func ExportedValueGetter = second parameter in Export creation.


Solution

  • After much research, trials and errors I got it

    var exportDefs =  ObjectBase.Container.Catalog.Parts.Select(p => p.ExportDefinitions);
    
            foreach (var item in exportDefs)
            {
                foreach (var e in item)
                {
                    Export ex = new Export(e,e.GetType);
                    ObjectBase.Container.ReleaseExport(ex);
                }
    
            }
    

    Having this is very important when using Non-Shared creation, this code block releases all instances from container and frees memory.