Asp.net MVC+unity简单架构

来源:互联网 发布:淘宝跳失率怎么计算 编辑:程序博客网 时间:2024/05/16 11:05


       

            


        view与controller命名

        

      

     如果某层需要扩展可以增加一个例如dao

    


一:分离view和controller

        把view与controller分离到两个不同的项目中,层次更清晰

       这点很简单只需要新建一个类库,添加System.Web.Mvc.dll的引用就可以建立Controller了,

       然后就可以把默认项目中的controller删除了,引用一个新建的类库,Controller就可以正常使用了

        

       注意:由于controller被单独放到了一层 ,使用request,session这些需要引用Ssytem.Web这个DLL   

   

二:在建立service,dao添加引用就可以了,主要是使用unity依赖注入controler与分层配置的方法

      1:使用unity依赖注入controler

           http://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-unity-dependency-resolver.html

          http://blog.csdn.net/aojiancc2/article/details/21557157

          http://blog.csdn.net/aojiancc2/article/details/21543219

       2:分层配置unity

            

          每一层都有单独unity的映射配置文件

          需要解决两个问题

          a:如何读取不同层的unity配置信息

              http://blog.csdn.net/aojiancc2/article/details/21618299

         b:将每层读取到的信息放入到unity里              

IUnityContainer container = new UnityContainer();                //Controller层unity配置文件              UnityConfigurationSection unityController = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");              //Service层unity配置文件              UnityConfigurationSection unityService = ConfigManager.GetSection<UnityConfigurationSection>("unity");                container.LoadConfiguration(unityController, "UnityController");              container.LoadConfiguration(unityService, "UnityService");  


三:常见问题

未能加载文件或程序集“Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

  这是由于版本不同,右键你的Microsoft.Practices.Unity看属性就知道了

  

   重新引用下就可以了





0 0
原创粉丝点击