2016-04-06 35 views
2

Bir ASP.NET uygulamasında kullanmak için bazı özel Middleware yazıyorum. Ara katmanım, AddServices yöntemini kullanarak Microsoft DI kapsayıcısına ekleyebileceğim bazı hizmetlere bağlıdır.DNX'de gereken özel katman yazılımı DI gerektiriyor?

Ancak, xUnit kullanırken ve TestServer oluştururken, ara katman yazılımımın bağımlı olduğu hizmetlerimi enjekte etmek üzere Microsoft DI kapsayıcısını çağırmak için yerim yok.

Bir testserver oluşturmak hakkında bilgi için aşağıdaki örneğe bakın ve üzerinde benim Middleware ekleyin:

/// <summary> 
///  Create a server with the ASP.NET Core Logging Middleware registered without any configuration. 
///  The server will throw an exception of type <typeparamref name="T"/> on every request. 
/// </summary> 
/// <typeparam name="T">The type of exception to throw.</typeparam> 
/// <returns>A <see cref="TestServer"/> that can be used to unit test the middleware.</returns> 
private TestServer CreateServerWithAspNetCoreLogging<T>() 
    where T : Exception, new() 
{ 
    return TestServer.Create(app => 
    { 
     app.UseAspNetCoreLogging(); 

     SetupTestServerToThrowOnEveryRequest<T>(app); 
    }); 
} 

ve nasıl enjekte edilmelidir Hizmetime Microsoft DI kabın içine?

cevap

0

nispeten kolayca yapılabileceğini görünüyor:

/// <summary> 
///  Create a server with the ASP.NET Core Logging Middleware registered without any configuration. 
///  The server will throw an exception of type <typeparamref name="T"/> on every request. 
/// </summary> 
/// <typeparam name="T">The type of exception to throw.</typeparam> 
/// <returns>A <see cref="TestServer"/> that can be used to unit test the middleware.</returns> 
private TestServer CreateServerWithAspNetCoreLogging<T>() 
    where T : Exception, new() 
{ 
    return TestServer.Create(null, app => 
    { 
     app.UseAspNetCoreLogging<string>(); 

     SetupTestServerToThrowOnEveryRequest<T>(app); 
    }, services => 
    { 
     services.AddAspNetCoreLogging(); 
    }); 
}