using System; using System.Linq.Expressions; using LightInject; namespace EveOPreview { // Adapts LighInject to the generic IoC interface sealed class LightInjectContainer : IIocContainer { private readonly ServiceContainer _container; public LightInjectContainer() { this._container = new ServiceContainer(ContainerOptions.Default); } public bool IsRegistered() { return this._container.CanGetInstance(typeof(TService), ""); } public void Register() { this._container.Register(); } public void Register() where TImplementation : TService { this._container.Register(); } public void Register(Expression> factory) { this._container.Register(f => factory); } public void RegisterInstance(T instance) { this._container.RegisterInstance(instance); } public TService Resolve() { return this._container.GetInstance(); } } }