vuejs una udemy online net mvc mega libro gratis español ejemplos desarrollo desarrolla cursos curso completo asp asp.net asp.net-mvc asp.net-mvc-5 owin katana

udemy - ¿Cómo obtengo una instancia de IAppBuilder en otra parte de mi aplicación ASP.NET MVC 5.2.3?



libro asp net mvc 5 español (1)

Necesito construir un objeto de middleware de Owin pero no desde la clase de Startup . Necesito construirlo desde cualquier otro lugar en mi código, por lo que necesito una referencia a la instancia AppBuilder de la aplicación. ¿Hay alguna manera de obtener eso de cualquier otro lugar?


Simplemente podría inyectarse AppBuilder a OwinContext . Pero dado que el contexto de Owin solo admite el objeto IDisposable , envuélvalo en IDisposable objeto IDisposable y regístrelo.

public class AppBuilderProvider : IDisposable { private IAppBuilder _app; public AppBuilderProvider(IAppBuilder app) { _app = app; } public IAppBuilder Get() { return _app; } public void Dispose(){} } public class Startup { // the startup method public void Configure(IAppBuilder app) { app.CreatePerOwinContext(() => new AppBuilderProvider(app)); // another context registrations } }

Entonces, en todas partes de su código, tiene acceso IAppBuilder objeto IAppBuilder .

public class FooController : Controller { public ActionResult BarAction() { var app = HttpContext.GetOwinContext().Get<AppBuilderProvider>().Get(); // rest of your code. } }