Зарегистрировать отдельный класс с помощью простого инжектора - PullRequest
0 голосов
/ 21 марта 2019

Как я могу зарегистрировать класс, у которого нет интерфейса, и после этого получить его услуги. Проект находится в .NET 4.5 MVC. Я пытаюсь использовать SimpleInjector в первый раз и сделать метод ConfigureServices в классе запуска. Мой класс:

  public class LawyersDB : DBFunction
{
    #region "MemberFields"
    Int16 _CommandTimeout;
    #endregion

    #region Constructors

    public LawyersDB()
    {
        _CommandTimeout = 300;
    }

    public LawyersDB(SQLDatabase conDatabase) :
        base(conDatabase)
    {
        _CommandTimeout = 300;
    }

    #endregion

    #region LIST

1 Ответ

0 голосов
/ 21 марта 2019

Simpleinjector не любит классы или сервисы, имеющие несколько конструкторов. Он считает их кодовым запахом IIRC.

Вы можете сделать что-то вроде:

container.Register(() => new LawyersDb(container.GetInstance(typeof(SQLDatabase)), Lifestyle.Scoped);

Вам необходимо установить область видимости и получить экземпляр базы данных SQL, которую вы хотите использовать в классе.

...