将类的实例注入构造函数

时间:2011-09-16 08:45:27

标签: asp.net asp.net-mvc dependency-injection structuremap

这是将类依赖项注入存储库的最佳实践吗?请记住,其他存储库将需要此PetaPoco.Database实例,因为我希望每个存储库都使用共享数据库连接对象。

public class ConfigRepository : IConfigRepository
{
        private Database DB;

        public ConfigRepository(PetaPoco.Database db)
        {
            DB = db;
        }
}

//这是如何配置structuremap的

    ObjectFactory.Initialize(x =>
    {
        x.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.WithDefaultConventions();
            scan.AddAllTypesOf<IController>();


        });

        x.Register<PetaPoco.Database>(new PetaPoco.Database("DBConnection"));

        x.For<IConfigRepository>().Use<ConfigRepository>();

    });
    return ObjectFactory.Container;

1 个答案:

答案 0 :(得分:1)

我被告知这就是你所需要的:

x.For<PetaPoco.Database>().Singleton().Use(()=>new PetaPoco.Database("connectionString"));