Adds DNX support for StructureMap
Add StructureMap.Dnx
to your project.json:
"dependencies": {
"StructureMap.Dnx": "<version>"
}
The package contains a single, public extension method, Populate
.
It's used to populate a StructureMap container using a set of ServiceDescriptors
or an IServiceCollection
.
using System;
using Microsoft.Extensions.DependencyInjection;
using StructureMap;
public class Startup
{
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddWhatever();
var container = new Container();
// You can populate the container instance in one of two ways:
// 1. Use StructureMap's `Configure` method and call
// `Populate` on the `ConfigurationExpression`.
container.Configure(config =>
{
// Register stuff in container, using the StructureMap APIs...
config.Populate(services);
});
// 2. Call `Populate` directly on the container instance.
// This will internally do a call to `Configure`.
// Register stuff in container, using the StructureMap APIs...
// Here we populate the container using the service collection.
// This will register all services from the collection
// into the container with the appropriate lifetime.
container.Populate(services);
// Finally, make sure we return an IServiceProvider. This makes
// DNX use the StructureMap container to resolve its services.
return container.GetInstance<IServiceProvider>();
}
}