using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; namespace EveOPreview { /// /// Generic interface for an Inversion Of Control container /// public interface IIocContainer { void Register() where TImplementation : TService; void Register(Type serviceType, Assembly container); void Register(); void Register(Expression> factory); void Register(Expression> factory); void RegisterInstance(TService instance); TService Resolve(); IEnumerable ResolveAll(); object Resolve(Type serviceType); IEnumerable ResolveAll(Type serviceType); bool IsRegistered(); } }