2016-01-17 16 views
13

parametreleri ile enjekte DI vNext uygulama kullanıyorum. Parametreler yapıcıya nasıl iletilir?ASP.NET 5 bağımlılık enjeksiyonu,

public class RedisCacheProvider : ICacheProvider 
{ 
    private readonly string _connectionString; 

    public RedisCacheProvider(string connectionString) 
    { 
     _connectionString = connectionString; 
    } 
    //interface methods implementation... 
} 

Ve servis kaydını:

services.AddSingleton<ICacheProvider, RedisCacheProvider>(); 

Nasıl RedisCacheProvider sınıfının yapıcı parametre geçirmek için Örneğin i sınıf var? Manuel önbellek sağlayıcı örneğini veya doğrudan bir örneğini sunmak için bir temsilci sağlayabilir ya

builder.RegisterType<RedisCacheProvider>() 
     .As<ICacheProvider>() 
     .WithParameter("connectionString", "myPrettyLocalhost:6379"); 

cevap

34

: AutoFac için Örneğin

services.AddSingleton<ICacheProvider>(provider => new RedisCacheProvider("myPrettyLocalhost:6379")); 

services.AddInstance<ICacheProvider>(new RedisCacheProvider("myPrettyLocalhost:6379")); 
+0

Eğer yapıcı parametre değişken olması durumunda yapacağını nasıl DbContext türü. Örneğin, "public class StateService: IStateService { özel BloggingContext _context; public StateService (BloggingContext içeriği) { _context = context; } public IEnumerable Liste() { return _context.States.ToList(); } } – nam

+0

@nam buna bir bakın. Kapsamlı bir hizmetin nasıl ekleneceğini açıklar. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection – ArcadeRenegade