سؤال

I have an mvc project. I use Autofac In Entity Access Layer and StructureMap in Membership provider.

Can I use Autofac and structuremap together in single mvc project?

Thnx

هل كانت مفيدة؟

المحلول

I suppose you are using ASP.NET MVC in your project. Then, you just need to implement ASP.NET MVC IDependencyResolver interface which contains only two methods and looks like:

public interface IDependencyResolver
{
    object GetService(Type serviceType);
    IEnumerable<object> GetServices(Type serviceType);
}

Your implementation should take two parameters into its constructor: Autofac dependency resolver and StructureMap dependency resolver. It could look like this:

public class CombinedDependencyResolver : IDependencyResolver
{
    private readonly AutofacDependencyResolver _autofacDependencyResolver;
    private readonly StructureMapDependencyResolver _structureMapDependencyResolver;

    public CombinedDependencyResolver(AutofacDependencyResolver autofacDependencyResolver, StructureMapDependencyResolver structureMapDependencyResolver)
    {
        _autofacDependencyResolver = autofacDependencyResolver;
        _structureMapDependencyResolver = structureMapDependencyResolver;
    }

    public object GetService(Type serviceType)
    {
        // your logic here
        _structureMapDependencyResolver.GetService(serviceType);
        _autofacDependencyResolver.GetService(serviceType);
        return new object();
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        // your logic here
        return null;
    }
}

Then implement IDependencyResolver's methods according to your logic and resolve dependencies either from AutofacDependencyResolver or StructureMapDependencyResolver.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top