Unity应用

0、Unity应用
 

0、Unity应用 1
1 1、控制倒转IoC(Inversion of Control) 2
1.1 工厂模式 2
2 2、依赖注入DI(Dependency Injection) 4
2.1 BuildUp手动注入 4
3 1、基础使用步骤 4
3.1 1、建立容器 4
3.2 2、将接口与类的映射注册到容器中 4
3.2.1 RegisterType 4
3.2.2 RegisterInstance(默认单例) 5
3.3 3、从容器中解析出正确的对象 5
3.4 BuildUp 方法 5
4 5、LifetimeManager对象生命周期 5
4.5 1.ContainerControlledLifetimeManager 5
4.5 2.ExternallyControlledLifetimeManager 5
4.5 3.PerThreadLifetimeManager 6
5 6、嵌套容器 6
6 8、杜绝循环引用 6
6.1 Constructor Injection构造器的参数中互相引用 6
6.2 Constructor Injection生成的对象作为自身构造器的参数 7
6.3 method call injection生成的对象互相引用 7
6.4 property(setter) injection生成的对象互相引用 7
7 9、容器vs.工厂 8
7.1 several reasons to use containers 8
7.2 Factory实例 9
7.3 使用容器不使用工厂的理由 11
8 10、Unity vs. MEF 11

1 1、控制倒转IoC(Inversion of Control)
1.1 工厂模式

UtopiaObjectFactory
using System;
using  System.Reflection;
using  System.Configuration;
namespace  UtopiaObjectFactory
{
   /// <summary>
   ///将创建的对象放入缓存中,
   ///用的时候检查缓存是否存在对象,
   ///没用则创建对象
   /// </summary>
   public sealed class  DataAccess
   {
      public  DataAccess()
      { }
      #region  CreateObject
     
      /// <summary>
      /// 创建对象,不使用缓存
      ///<appSettings>
      ///   <add  key="AProduct "  value="strPath,strClassCacheKey)" />
      ///</appSettings>
      /// </summary>
      public  static  object  CreateObjectNoCache(string path,string  CacheKey)
      {    
         try
         {
           object  objType =  Assembly.Load(path).CreateInstance(CacheKey);
           return  objType;
         }
  catch//(System.Exception ex)
         {
           //string  str=ex.Message;// 记录错误日志
           return null;
         }       
        
      }
      /// <summary>
      /// 创建对象或从缓存获取,使用缓存
      /// </summary>
      public static  object  CreateObject(string  path,string  CacheKey)
      {       
         object objType  =  DataCache.GetCache(CacheKey);
    

转载于:https://www.cnblogs.com/utopia/archive/2009/08/31/1556973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值