Как связать StructureMap с типами, объявленными в разделах Config - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь обобщить часть своего кода, чтобы я мог настроить работу своего приложения с помощью Конфигурации.

Например, у меня есть набор очередей, которые я хочу использовать. Каждая Очередь будет иметь Потребителя, который будет знать, как извлечь данные из Очереди. У каждого потребителя есть процессор, который знает, как обрабатывать сообщение. У меня будет два разных типа процессоров. Один из них сохранит результаты в базе данных. Другой отправит результаты в конечную точку 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 отключить его и вернуть правильный тип?

...