2013-11-14 4 views
1

Предположим, у меня есть интерфейс IMyComponent, и я хочу называть его напрямую или через WCF или какой-либо другой канал связи, как мне его соизволить?реализовать подключаемый канал к интерфейсу C#

Моя идея:

Split это вверх в поставщика и потребителя части:

IMyComponentProvider: IMyComponent 
IMyComponentConsumer: IMyComponent 

И построить объект, провода эти оба интерфейса:

MyComponent (MyComponentProvider) < - Channel (MyComponentConsumer) < - вызывающий контекст

Вопросы:

  • Каковы альтернативы, особенно с autofac?
  • Какой шаблон дизайна применяется к этому и к альтернативам?
  • Какие соглашения об именах являются полезными или стандартными?
+0

Возможно, это «цепочка ответственности»? –

ответ

1

AFAIK для этого случая нет обобщенного решения. На самом деле это не «цепочка ответственности», потому что вы не хотите давать кому-либо возможность справиться с этим запросом. Но его можно легко увидеть как «цепочку фильтров».

Проблема с Autofac заключается в том, что вы зарегистрировали свои компоненты и создали контейнер Autofac, прежде чем сможете его использовать. Невозможно разрешить компонент и зарегистрировать замену позже.

Если вы знаете свою цепочку, вы можете зарегистрировать специальные интерфейсы для него: Регистрация (IComponent, ComponentType) Регистрация (IComponentChannel, ComponentChannelType) это как ваш поставщик/потребитель шаблона.

В качестве альтернативы вы должны украсить свой компонент каналом и зарегистрировать оформленный интерфейс. Регистрация (IComponent, ChannelDecorator)

Смежные вопросы