微软企业库5.0学习笔记(七)存储容器的引用

通常,如果你不使用构造函数、属性或方法调用注入,以解决您的应用程序在初始化过程中的依赖,你将需要保留一个引用到容器,以便能够通过直接访问它来解决相应的对象。不过,也有些情况你可能希望在初始化后能够引用容器。下面是一些情况下,您可以考虑储存容器的引用,以便在您的代码中使用:

 如果你使用ASP.NET Web 窗体或创建web服务。你必须能够解决每一页或每个服务请求的对象,如果每次都创建容器并加载企业库的配置信息或者你自己的注册信息就资源方面来说那是相当昂贵的。这种情况系通常需要把容器存储到Application字段或者你自己的服务实现中,以便在每个请求的时候使用它来解决实例。

如果你正在创建控制台应用或用户组件(而不是一个拥有用户接口或Web服务的应用程序)。

     如果你使用Unity作为你的容器,你可以在你的启动代码中创建容器并加载企业库容器扩展,然后用Resolve方法来解决其他类需要的依赖. 定义在这些类中的任何依赖将自动填充。你可以在整个应用程序的生命拥有一个全局变量。请注意不建议销毁容器。

如果你想在容器中为自己的对象存储注册

     您可以选择使用一个单独的容器,虽然你也可以很容易使用的拥有使用企业库配置注册的默认容器。

如果你希望能够解决需求的对象实例,而不是总是在类实例化的时候才解决。

      如果一个类只在某些情况下需要,从容器中直接调用方法来解决实例将会更有用,而不是当类实例化的时候才通过构成函数、属性或方法调用注入来创建它们。下列表格将帮助你理解在基于保单或富客户端(例如使用winfows窗体、WPF、silverlight)中应该在什么时候在什么地方拥有容器的实例。

下列表格将帮助你理解在基于请求(例如使用ASP.NETWEB服务)中应该在什么时候在什么地方拥有容器的实例。

 

微软企业库5.0学习笔记(七)存储容器的引用_第1张图片

 

 

处理并注入需要的对象

    如果你不选择在应用启动的时候加载所有的应用依赖,你可以使用容器处理你需要的任何企业库对象。你可以用它来处理你自己的任何类或这拥有公共构造函数并且在容器中有合适注册的其他对象。

     下图显示你可以用容器生成需要的对想的几种方法的概述。

应用启动时候的处理对象的图例

微软企业库5.0学习笔记(七)存储容器的引用_第2张图片

你可能感兴趣的:(微软企业库5.0学习笔记(七)存储容器的引用)