Class CompositionContextExportDescriptorProvider
A composition context export descriptor provider.
Inheritance
Implements
Inherited Members
Namespace: Kephas.Composition.Mef.ExportProviders
Assembly: Kephas.Composition.Mef.dll
Syntax
public class CompositionContextExportDescriptorProvider : ExportDescriptorProvider, IExportProvider
Constructors
| Improve this Doc View SourceCompositionContextExportDescriptorProvider(ICompositionContext)
Initializes a new instance of the CompositionContextExportDescriptorProvider class.
Declaration
public CompositionContextExportDescriptorProvider(ICompositionContext compositionContainer)
Parameters
Type | Name | Description |
---|---|---|
ICompositionContext | compositionContainer | The composition container. |
Methods
| Improve this Doc View SourceGetExportDescriptors(CompositionContract, DependencyAccessor)
Promise export descriptors for composition context.
Declaration
public override IEnumerable<ExportDescriptorPromise> GetExportDescriptors(CompositionContract contract, DependencyAccessor descriptorAccessor)
Parameters
Type | Name | Description |
---|---|---|
System.Composition.Hosting.Core.CompositionContract | contract | The export key required by another component. |
System.Composition.Hosting.Core.DependencyAccessor | descriptorAccessor | Accesses the other export descriptors present in the composition. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<System.Composition.Hosting.Core.ExportDescriptorPromise> | Promises for new export descriptors. |
Overrides
Remarks
A provider will only be queried once for each unique export key. The descriptor accessor can only be queried immediately if the descriptor being promised is an adapter, such as System.Lazy<T>; otherwise, dependencies should only be queried within execution of the function provided to the System.Composition.Hosting.Core.ExportDescriptorPromise. The actual descriptors provided should not close over or reference any aspect of the dependency/promise structure, as this should be able to be GC'ed.