StructureMap 2.6 - Как это сделать в файле конфигурации - PullRequest
0 голосов
/ 29 сентября 2010

Вот код c #:

var server = ******* some internal logic to determine server name ****
var username = ******* some internal logic to determine user name ****
var password = ******* some internal logic to determine password ****

ObjectFactory.Initialize(x =>
{                                            
 x.For<IService<bool>>().Add<Service>()
.Ctor<string>("server").Is(server)
.Ctor<string>("username").Is(username)
.Ctor<string>("password").Is(password)
}

Это прекрасно работает, но я бы хотел переместить это в файл конфигурации, поскольку я не хочу ссылаться на конкретный тип непосредственно в моем коде.

Существует немного документации о 2.6. Я не мог найти, как справиться с этим в конфигурации.

В идеале я хотел бы добавить параметры сервера, имени пользователя и пароля в ObjectFactory и кое-как использовать эти параметры в конфигурации.

(PS: не обязательно иметь с StructureMap любой контейнер IAC, который может поддерживать этот сценарий.)

Спасибо

1 Ответ

0 голосов
/ 30 сентября 2010

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

...