5

OWIN/Katana'da barındırılan bir WebAPI hizmetleri için bir Onion Architecture'ı takip etmeye çalışıyorum.OWIN üzerinde WebAPI ile Soğan Mimarisi ve DI Uygulanabilir Mümkün mü?

Onion Architecture

Böyle bir çözüm yapıya sahiptir:

  • DependencyResolution: Owin Başlangıç ​​sınıfı ve IoC kurulum
  • WebAPI içerir: Web API kontrolörleri
  • Altyapı: Arabirim Uygulamaları
  • Çekirdek: Arayüzler

WebApi projesinin bağımlılıkları enjekte etmek için Bağımlılık Çözümü projesini istiyorum. DependencyResolution, WebApi projesinin çıktı klasörüne çıkış yapmak için bir oluşturma görevine sahiptir.

Ben yaklaşım AutoFac ve DotNetDoodle.Owin.Dependencies Nuget paketini kullanarak, burada özetlenen aşağıdaki şeyler: my Başlangıç ​​sınıfında RegisterApiControllers için, çağrı hizmetlerini kayıt içinde,

http://www.tugberkugurlu.com/archive/owin-dependencies--an-ioc-container-adapter-into-owin-pipeline

Ancak () başaramayacak. DepenedencyResolution montaj o ApiContollers içeren takımını (WebAPI montaj) almak mümkün olmayacaktır böylece yürütmek ilk olacak: Burada) (assembly.load için tek uygun seçenek başvurmadan

public IContainer RegisterServices() 
{ 
    ContainerBuilder builder = new ContainerBuilder(); 

    builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
    builder.RegisterType<MyRepo>() 
      .As<IRepo>() 
      .InstancePerLifetimeScope(); 

    return builder.Build(); 
} 

mi, yoksa DependencyResolution projesinin izole edilmesini ve sadece WebApi projesinden kaynaklanma fikrini unutmamalı mıyım (biraz daha azına benziyor)?

cevap

1

Bunu örneğini almak için Web API derleme adı kullanabilirsiniz:

builder.RegisterApiControllers(Assembly.Load("WebApiAssembly"));