Я пытаюсь обобщить часть своего кода, чтобы я мог настроить работу своего приложения с помощью Конфигурации.
Например, у меня есть набор очередей, которые я хочу использовать.
Каждая Очередь будет иметь Потребителя, который будет знать, как извлечь данные из Очереди.
У каждого потребителя есть процессор, который знает, как обрабатывать сообщение.
У меня будет два разных типа процессоров. Один из них сохранит результаты в базе данных. Другой отправит результаты в конечную точку HTTP.
Мне нужен StructureMap, чтобы понять, в каких случаях возвращать процессор базы данных, а в каких случаях возвращать процессор HTTP.
И пример моего файла конфигурации будет:
<Consumers>
<queues>
<clear />
<add name="Foo" threadsToRun="1" processorType="MyAssembly.MyClassess.DatabaseProcessor">
<Consumer name="FooConsumer" />
<connectionStrings>
<clear />
<add name="DBConnection" connectionString="Server=MyServer; Connection Timeout=60;" />
</connectionStrings>
</add>
<add name="Bar" threadsToRun="1" processorType="MyAssembly.MyClassess.HttpProcessor">
<Consumer name="BarConsumer" />
<urls>
<clear />
<add name="barUrl" url="www.bar.com" />
</urls>
</add>
</queues>
</Consumers>
В приведенном выше заявлении у меня есть два потребителя очереди. Один по имени Фу, другой по имени Бар.
Foo понадобится процессор базы данных
Бар должен будет иметь Http-процессор
Я могу указать тип процессора, который будет использоваться как часть конфигурации.
Как мне заставить StructureMap отключить его и вернуть правильный тип?