2016-07-07 13 views
1

Orchard Caching Design:Migration von Autofac Wie zu lösen?

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 

Frage:

Autofac haben eine Methode:

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

aber ich cant'find mit params lösen bei Dryioc, wie bei Dryioc?

+0

Willkommen bei Stack-Überlauf! Ich habe Ihre Frage bearbeitet, um das Codebeispiel so zu formatieren, dass es ordnungsgemäß gerendert wird. Weitere Informationen zur Formatierung finden Sie in der Bearbeitungshilfe. Bitte editieren Sie, um zusätzliche Details zu liefern, die zur Identifizierung des spezifischen Problems notwendig sind. Viel Glück! – Wtower

Antwort

1

Kurze Antwort:

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

es ist ok, danke! – try

+0

Ich werde es hier lassen ... vielleicht kann es für andere hilfreich sein, den Status zu verfolgen: https://bitbucket.org/dadhi/dryioc/issues/304/add-option-to-pass-values-for-some – Maxim