Как вы определяете, какой конкретный класс потребляется службой WCF? - PullRequest
1 голос
/ 27 января 2010

Мои конечные точки указывают, какой интерфейс используется для управления службой WCF. Поскольку это интерфейс, у меня может быть несколько разных конкретных классов, реализующих функциональность интерфейса. Как мне указать, какой конкретный класс следует использовать для конечной точки данного WCF-сервиса?

Как вы говорите для этой конечной точки, использовать этот конкретный класс и для этой конечной точки, использовать этот конкретный класс, когда обе конечные точки используют один и тот же интерфейс?

1 Ответ

1 голос
/ 27 января 2010

Используемый тип реализации контракта определяется при создании экземпляра ServiceHost. Если у вас есть несколько конечных точек, обслуживаемых одним и тем же ServiceHost, он создаст экземпляр одного типа для ответа на запросы к этим конечным точкам.

Если вы хотите, чтобы две конечные точки для одного и того же контракта использовали разные реализации, у вас есть два варианта:

  • выставить две конечные точки на двух отдельных сервисных хостах. (Либо путем создания двух ServiceHost экземпляров, либо путем указания двух <service> элементов конфигурации);
  • имеет составную реализацию для класса, которая имеет две отдельные реализации одного и того же интерфейса (через любой подход ООП, о котором вы только можете думать) и отправляет вызовы к ним на основе адреса конечной точки.

Я бы лично придерживался первого подхода. Если вы выберете второй подход, вы, по сути, будете реализовывать ServiceHost сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...