Switch to MVP pattern

This commit is contained in:
Anton Kasyanov
2016-05-22 18:37:04 +03:00
parent 5e276b7a98
commit 362fd0b8d4
41 changed files with 2060 additions and 1265 deletions

View File

@@ -0,0 +1,48 @@
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<TService>()
{
return this._container.CanGetInstance(typeof(TService), "");
}
public void Register<TService>()
{
this._container.Register<TService>();
}
public void Register<TService, TImplementation>()
where TImplementation : TService
{
this._container.Register<TService, TImplementation>();
}
public void Register<TService, TArgument>(Expression<Func<TArgument, TService>> factory)
{
this._container.Register(f => factory);
}
public void RegisterInstance<T>(T instance)
{
this._container.RegisterInstance(instance);
}
public TService Resolve<TService>()
{
return this._container.GetInstance<TService>();
}
}
}