-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
We have received feedback that we should limit our usage of MEF as part of the public API, according to feedback by .NET team. We currently for the sake of writing "custom" transformers have the user interact with it. This can be seen here.
machinelearning/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs
Line 535 in 2d351eb
| newContext.CompositionContainer = new CompositionContainer(new TypeCatalog(typeof(CustomMappings))); |
As we see, we are hsing on MLContext MEF containers and catalogs, using types exposing MEF Import and Export attributes, etc. etc. The feedback from .NET team is, stop, do something else, because MEF is apparently not "clean" enough.
(What is to be done instead? Possibly registering some "named" delegate to produce these things, or other. But anyway, we should not use MEF directly. Maybe not use attributes at all, and just require explicit registration somehow. I'm not sure.)
@eerhardt and others may have more specific recommendations or context on why we should not use MEF in this way.