SharpGen/IocServiceContainer.cs (27 lines of code) (raw):
using System;
using System.ComponentModel.Design;
namespace SharpGen
{
public sealed class IocServiceContainer : ServiceContainer
{
public IocServiceContainer()
{
}
public IocServiceContainer(IServiceProvider parentProvider) : base(parentProvider)
{
}
public void AddService<T>(T serviceInstance) where T : class
{
if (serviceInstance == null) throw new ArgumentNullException(nameof(serviceInstance));
AddService(typeof(T), serviceInstance);
}
public void AddService<T>() where T : class, new()
{
AddService(typeof(T), new T());
}
public void AddService<TI, TImpl>() where TI : class where TImpl : class, new()
{
AddService(typeof(TI), new TImpl());
}
}
}