Reputation: 1
i use LightInject(Light weight IOC Container in C#) in ExirRobot.Infrastructure as a global IOC Container Project in my solutionExplorer(Picture Was Attached).I want to register Ioc Config Class(IOC.cs) in ExirRobot.WebApi project inorder to inject Service Layer Interfaces(such as IArticleService) into web api controllers,how can i do this?
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());
}
}
Upvotes: 0
Views: 3731
Reputation: 3641
You need to implement an IDependencyResolver for LightInject or you can use this NuGet package.
This is how you configure it into 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.
}
See also Dependency Injection in ASP.NET Web API 2.
Upvotes: 0