【发布时间】:2011-07-04 04:03:54
【问题描述】:
我正在尝试创建一个 DAO 对象,该对象将构造函数依赖于数据访问应用程序块的数据库对象。如何设置我的 .config 文件以让 Unity 解决依赖关系?我已经尝试映射数据库类型来创建一个数据库对象,但无法让它工作。
有没有其他人尝试过这样做?
【问题讨论】:
标签: unity-container enterprise-library config daab
我正在尝试创建一个 DAO 对象,该对象将构造函数依赖于数据访问应用程序块的数据库对象。如何设置我的 .config 文件以让 Unity 解决依赖关系?我已经尝试映射数据库类型来创建一个数据库对象,但无法让它工作。
有没有其他人尝试过这样做?
【问题讨论】:
标签: unity-container enterprise-library config daab
只是一个开始提示,将您已完成的代码示例添加到您的问题中。它告诉我们你已经走了多远,至少你正在使用什么语言。我将假设 c#、EL V5 并从头开始:
首先让我们回顾一个依赖于数据库应用程序块的类的标准构造函数:
private Microsoft.Practices.EnterpriseLibrary.Data.Database database;
public TestSQLConnection(Microsoft.Practices.EnterpriseLibrary.Data.Database injectedDatabase)
{
database = injectedDatabase;
}
以下是调用创建者的方法:
TestSQLConnection testSQLConnection =
Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.Current.GetInstance<TestSQLConnection>();
简而言之,有依赖注入为您服务,忘记如何创建它,只需请求它的一个实例,其余的由库完成。
创建配置最简单的方法是使用 Enterprise Library V5 配置工具,因为它创建了必要的部分,我建议您“阅读精美手册”。
如果您是手动操作,这里是您需要的部分:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Tell EL what sections to use-->
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<!-- And use them -->
<dataConfiguration defaultDatabase="MyDatabase" />
<!-- This is just a plain connection string-->
<connectionStrings>
<add name="MyDatabase" connectionString="Data Source=DUMMY;Initial Catalog=default;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
【讨论】: