Я регистрирую реализацию, которая будет создана для интерфейса. Этот конструктор реализаций имеет три параметра:
public ProfileImageService(ISqlConnection connection, string localStorageLocation, string serverPath)
Я уже зарегистрировал ISqlConnection следующим образом:
c.Register<Data.ISqlConnection, Data.TsqlConnection>(setup: Setup.With(openResolutionScope: true));
Однако, когда я регистрирую ProfileImageService следующим образом:
c.Register<Data.Services.Profile.IImageService, Data.Services.Profile.ProfileImageService>(Made.Of(() => new Data.Services.Profile.ProfileImageService(Arg.Index<Data.ISqlConnection>(0), Arg.Index<string>(1), Arg.Index<string>(2)), requestIgnored =>c.Resolve<Data.ISqlConnection>(), requestIgnored => localImageStoragePath, requestIgnored => localImageUrl));
Я получаю следующую ошибку:
Message=State требуется для использования (вероятно, для внедрения) элемента Abc.Data.TsqlConnection. Чтобы включить использование элемента, вы можете указать container.With(rules => rules.WithItemToExpressionConverter(YOUR_ITEM_TO_EXPRESSION_DELEGATE)).
Я прочитал это SpecifyDependencyAndPrimitiveValues и попытался переработать его, как они сделали, но их пример показывает только это с примитивами или с зависимостями, а не с обоими, и я не могу найти синтаксис, в котором они смешиваются без ошибок компиляции. Может ли кто-нибудь дать мне несколько советов о том, как зарегистрировать этот экземпляр, указав значения для двух строк и значение для зависимости?