Внедрение экземпляра класса в конструктор - PullRequest
1 голос
/ 16 сентября 2011

Это лучшая практика для внедрения зависимости класса в репозиторий? Помните, что другим репозиториям понадобится этот экземпляр PetaPoco.Database, так как я хочу, чтобы каждый репозиторий использовал общий объект подключения к базе данных.

public class ConfigRepository : IConfigRepository
{
        private Database DB;

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

// Вот как настроена структура карты

    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 Ответ

1 голос
/ 16 сентября 2011

Мне сказали, что это то, что вам нужно:

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