/*****************************************************///Create Class With Interface Dependencies#region//需要某實現某介面的具體執行個體UnityContainer container=new UnityContainer();container.RegisterType(ILogger,NullLogger>();Database datavase = container.Resolve<CustomDatabase>Database();#endregionCustomDatabase的建構函式包含ILogger參數CustomDatabase(ILogger log){}/*****************************************************///Create TypeMapping-InterfaceUnityContainer container=new UnityContainer();container.RegisterType(ILogger,NullLogger>();ILogger logger = container.Resolve<ILogger>();/*****************************************************///Register SingletonUnityContainer container=new UnityContaier();container.RegisterType<Database,SqlDatabase>(new ContainerControlledLifetimeManager());/*****************************************************///Registering Named InstancesUnityContainer container=new UnityContaier();container.RegisterType<Database,SqlDatabase>("SQL");container.RegisterType<Database,OracleDatabase>("ORACLE");IEnumerable<Database> databases = container.ResolveAll<Database>(); //Return All named instancesDatabase database = container.Resolve<Database>("SQL");/*****************************************************///Register Existing Intance //Registering Named InstancesUnityContainer container=new UnityContaier();container.RegisterInstance<Database>(new SqlDatabase());//註冊instance,Unity認為它是Singletoncontainer.RegisterInstance<Database>("ORACLE",new OracleDatabase());Database database = container.Resolve<Database>("ORACLE");/*****************************************************///Buildup Existing InstaceUnityContainer container=new UnityContainer();container.RegisterType(ILogger,NullLogger>();DB2Database existingDatabase = new DB2Database();container.BuildUp(existingDatabase);//建立參考關聯性container.RegisterInstance<Database>(existingDatabase);Database database = container.Resolve<Database>();//-----public class DB2Database:Database{[Dependency]public ILogger Logger{get;set}}/*****************************************************/// Configure Container via Config FileUnityContainer _contaier=new UnityContaier(); UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");section.Configure(_container); // Unnamed <container> elementICustomerDataSource datasource=_container.Resolve<ICustomerDataSource>();/*****************************************************/container.Configure<InjectedMembers>().ConfigureInjectionFor<GenericDatabase>(new ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionStringnew InjectionProperty("Logger"));Database database=container.Resolve<Database>();/*****************************************************///NestedContainers 父子容器,適用於,有公用容器。樹型結構的容器oUnityContainer parentContainer = new UnityContaier();IUnityContaier childContainer1 = parentContaier.CreateChildContainer();IUnityContaier childContainer2 = parentContaier.CreateChildContainer();/...