Skip to content

Proposal: Inject existing object into MEF2 #29400

Closed
@gthvidsten

Description

@gthvidsten

MEF1 has method ComposeExportedValue<T>(T exportedValue). MEF2 should have a similar functionality in System.Composition.Hosting.ConfigurationContainer (as discussed in #18624 and #15362)

Suggested API

public ContainerConfiguration WithInstance<TExport> (TExport instance);
public ContainerConfiguration WithInstance<TExport> (string contractName, TExport instance);
public ContainerConfiguration WithInstance (Type t, object instance);
public ContainerConfiguration WithInstance (Type t, string contractName, object instance);

(Thanks to @NEKIT-Boss for the examples in #18624)

Usage

ContainerConfiguration containerConfig = new ContainerConfiguration()
    .WithAssembly(GetType().Assembly)
    .WithInstance<IExample>(new Example());

var container = containerConfig.CreateContainer();
var example = container.GetExport<IExample>();

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-approvedAPI was approved in API review, it can be implementedarea-System.CompositionenhancementProduct code improvement that does NOT require public API changes/additionshelp wanted[up-for-grabs] Good issue for external contributors

    Type

    No type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions