У меня возникли трудности с использованием StructureMap
для сервисов, где в конструкторе есть аргумент с нулевым значением. То естьStructureMap, передающий null в конструкторе
public JustGivingService(IRestClient restClient = null)
В моей конфигурации, со всеми другими службами, я обычно в состоянии уйти с минимальным, поэтому вопрос здесь, вероятно, просто недопонимание. Я хотел бы сделать это:
container.For<IJustGivingService>().Use<JustGivingService>()
Однако из-за обнуляемого параметра, я считаю, что мне нужно использовать это вместо того, чтобы заставить его работать:
RestClient restClient = null;
container.For<IJustGivingService>().Use<JustGivingService>()
.Ctor<IRestClient>("restClient").Is(restClient);
Однако это делает чувствую себя немного грязным для меня, и я чувствую, что это, вероятно, является обходным путем для того, чего я пытаюсь достичь, а не стандартного способа сделать это. Если есть лучший способ сделать это, сопутствующая информация о том, почему это было бы очень полезно.
небольшая альтернатива 'container.For() Использование () CTOR ("restClient") Is (() => NULL); 'Получает освобождение от переменной как минимум –
Thymine
@Thymine Большое вам спасибо! Это то, что, наконец, работало через 4 часа, ударяя головой о стол, о том, почему StructureMap не хочет разрешать мой экземпляр с нулевым параметром в моем конструкторе. – silkfire
@Thymine ты так много !! – RPM1984