Search code examples
dryioc

Migration from Autofac How to Resolve?


Orchard caching design:

public interface ICacheManager
{
    ICache<TKey, TResult> GetCache<TKey, TResult>();
}

class DefaultCacheManager : ICacheManager
{
    public DefaultCacheManager(Type component, ICacheHolder cacheHolder)
    {
        //do something
    }
    public ICache<TKey, TResult> GetCache<TKey, TResult>()
    {
       //do somthing
    }
}

Autofac code:

//1.register   
builder.RegisterType<DefaultCacheManager>().As<ICacheManager>().SingleInstance();

//2.reslove  
// the parameter is dynamic 
var parameter = new TypedParameter(do somthing...);    
container.Resolve(parameter);   //resolve by parameter 

Question:

Autofac have a method :

object Resolve(Type serviceType, params Parameter[] parameters);

but I cant'find resolve with params at dryioc, how do at dryioc?


Solution

  • Short answer:

    container.Resolve<Func<Type, ICacheManager>>()(my parameter ...);