使用Unity注入DAAB数据库对象

时间:2011-02-25 08:49:52

标签: unity-container enterprise-library config daab

我正在尝试创建一个DAO对象,该对象将构造函数依赖于数据访问应用程序块的Database对象。如何设置我的.config文件以使Unity解决依赖关系?我已经尝试映射数据库类型以创建数据库对象,但无法使其工作。

还有其他人尝试过这样做吗?

1 个答案:

答案 0 :(得分:0)

只是一个开始提示,添加您对问题所做代码的示例。它告诉我们你到底有多远,至少告诉我们你使用的语言。我将假设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>