Migration from Autofac 如何解决?
Migration from Autofac How to Resolve?
Orchard 缓存设计:
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 代码:
//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
问题:
Autofac 有一个方法:
object Resolve(Type serviceType, params Parameter[] parameters);
但我无法在 dryioc 中找到参数解析,在 dryioc 中如何?
简答:
container.Resolve<Func<Type, ICacheManager>>()(my parameter ...);
Orchard 缓存设计:
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 代码:
//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
问题:
Autofac 有一个方法:
object Resolve(Type serviceType, params Parameter[] parameters);
但我无法在 dryioc 中找到参数解析,在 dryioc 中如何?
简答:
container.Resolve<Func<Type, ICacheManager>>()(my parameter ...);