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?
Short answer:
container.Resolve<Func<Type, ICacheManager>>()(my parameter ...);