Unity中Web.Config文件的配置与调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Unity中Web.Config文件的配置与调用

在上一篇文章“Unit简单依赖注入”我们可以实现构造对象和被依赖对象之间的松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即当我们不想使用MP3Player注入,而想使用CDPlayer 注入时,我们需要修改客户类的容器注册。下面我们使用web.config配置文件来解决这个问题。

Unity 应用程序块可以从XML 配置文件中读取配置信息。配置文件可以是Windows Forms 应用程序的App.config 或者 应用程序的Web.config。当然,也可以从任何其他XML 格式的文件或者其他数据源中加载配置信息。

在本文中,将研究Unity 配置文件的格式、配置的读取、通过示例说明实例的获取。

1. Unity 配置文件的完整格式

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<section name="unity"

type="Microsoft.Practices.Unity.Configuration.UnityConfig urationSection,Microsoft.Practices.Unity.Configuration,

Version=1.0.0.0,Culture=neutral,

PublicKeyToken=31bf3856ad364e35" />

</configSections>

<unity>

<typeAliases>

<typeAlias alias="singleton"

type="Microsoft.Practices.Unity.ContainerControlledLifetim eManager,Microsoft.Practices.Unity" />

<typeAlias alias="external"

type="Microsoft.Practices.Unity.ExternallyControlledLifeti meManager, Microsoft.Practices.Unity" />

<typeAlias alias="IMyInterface"

type="MyApplication.MyTypes.MyInterface, MyApplication.MyTypes" />

<typeAlias alias="MyRealObject"

type="MyApplication.MyTypes.MyRealObject, MyApplication.MyTypes" />

<typeAlias alias="IMyService"

type="MyApplication.MyTypes.MyService, MyApplication.MyTypes" />

<typeAlias alias="MyDataService"

type="MyApplication.MyTypes.MyDataService,

MyApplication.MyTypes" />

<typeAlias alias="MyCustomLifetime"

type="MyApplication.MyLifetimeManager, MyApplication.MyTypes" />

</typeAliases>

<containers>

<container name="containerOne">

<types>

<type type="Custom.MyBaseClass" mapTo="Custom.MyConcreteClass" />

<type type="IMyInterface"

mapTo="MyRealObject" name="MyMapping" />

<type type="Custom.MyBaseClass" mapTo="Custom.MyConcreteClass">

<lifetime type="singleton" />

</type>

<type type="IMyInterface"

mapTo="MyRealObject" name="RealObject">

<lifetime type="external" />

</type>

<type type="Custom.MyBaseClass" mapTo="Custom.MyConcreteClass">

<lifetime value="sessionKey"

type="MyApplication.MyTypes.MyLifetimeManager,MyApp lication.MyTypes" />

</type>

<type type="IMyInterface"

mapTo="MyRealObject" name="CustomSession">

<lifetime type="MyCustomLifetime"

value="ReverseKey"

typeConverter="MyApplication.MyTypes.MyTypeConverte r,MyApplication.MyTypes" />

</type>

<type type="IMyService"

mapTo="MyDataService" name="DataService">

<typeConfig

extensionType="Microsoft.Practices.Unity.Configuration.T ypeInjectionElement,

Microsoft.Practices.Unity.Configuration">

<constructor>

<param name="connectionString" parameterType="string">

<value value="AdventureWorks"/>

</param>

相关文档
最新文档