0

ExirRobot.Infrastructure で LightInject (Lightweight IOC Container in C#) を solutionExplorer (Picture Was Attached) のグローバル IOC コンテナー プロジェクトとして使用します。サービス層インターフェイス (IArticleService など) を Web API コントローラーに追加するにはどうすればよいですか?

IOC.cs:

public class IOC{

     public static void Initialize()
     {
        var container = new LightInject.ServiceContainer();            
        //Engin Dependency Wiring
        container.Register<ISISearchResult, ISIContentProvider>(new PerRequestLifeTime());
        container.Register<ISearchArticleEngine, ISIEngineManager>(new PerRequestLifeTime());

        //Repository Dependency Wiring
        container.Register<IArticleRepository, ArticleRepository>(new PerRequestLifeTime());
        container.Register<IAuthorRepository, AuthorRepository>(new PerRequestLifeTime());
        container.Register<IIsiArticleDetailRepository, IsiArticleDetailRepository>(new PerRequestLifeTime());
        container.Register<IJournalRepository, JournalRepository>(new PerRequestLifeTime());
        container.Register<IVendorRepository, VendorRepository>(new PerRequestLifeTime());

        //Service Dependency Wiring
        container.Register<IArticleService, ArticleService>(new PerRequestLifeTime());
        container.Register<IAuthorService, AuthorService>(new PerRequestLifeTime());
        container.Register<IIsiArticleDetailService, IsiArticleDetailService>(new PerRequestLifeTime());
        container.Register<IJournalService, JournalService>(new PerRequestLifeTime());
        container.Register<IVendorService, VendorService>(new PerRequestLifeTime());
 }
}

ここに画像の説明を入力

4

1 に答える 1

0

LightInject の IDependencyResolver を実装する必要があります。または、このNuGet パッケージを使用できます。

これを Web API に構成する方法は次のとおりです。

public static void Register(HttpConfiguration config)
{
    var container = new UnityContainer();
    container.RegisterType<IProductRepository, ProductRepository>(new HierarchicalLifetimeManager());
    config.DependencyResolver = new UnityResolver(container);

    // Other Web API configuration not shown.
}

ASP.NET Web API 2 での依存関係の挿入も参照してください。

于 2016-07-23T16:54:46.060 に答える