У меня есть интерфейс и несколько классов, использующих этот интерфейс, также на сервере есть фабрика, которая создает конкретный экземпляр на основе некоторых параметров.Переключение нескольких классов на WCF
Теперь я должен был бы разоблачить эти классы для клиентов WCF, я надеялся, что смогу отметить интерфейс как OperationContract
и установить связь, но кажется, что на сервере (я новичок в WCF) Я должен создать сервис (или хотя бы открыть порт) для каждого класса, и я не могу сделать это для интерфейса.
Это единственный способ это сделать или я что-то упускаю?
Редактировать, чтобы прояснить:
Скажем, у меня есть интерфейс с одним методом, назовем его Execute(EnumedParam action)
. Я хотел бы быть в состоянии назвать его от клиента с
InterfaceType.Execute(Action.One);
и на сервере, чтобы создать экземпляр, основанный на действии и выполнить это Execute
метод.
Также может быть много экземпляров класса, и я бы хотел, чтобы клиент ничего не знал о классах, просто интерфейс.
Как это сделать через WCF?
(примечание: Если мой класс модели совершенно неправильно, вы можете порекомендовать книгу или блог, где я могу прочитать больше об этом?)
Я не могу вставить код в комментарии для другого редактирования
Wouter de Kort дал отличный пример того, что я делаю. Но как мне настроить конечные точки для этого? Глядя на приведенном здесь примере http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication - автор открывает порт, как это:
using (ServiceHost host = new ServiceHost(
typeof(StringReverser),
new Uri[]{
new Uri("http://localhost:8000"),
new Uri("net.pipe://localhost")
}))
{
Теперь, где моя проблема. Первый параметр - это класс (не может быть интерфейсом или абстрактным классом). Должен ли я делать это для каждого класса, который расширяет интерфейс, или я могу каким-то образом использовать один и тот же хост для нескольких классов?
Спасибо за ответ, я обновил сообщение в качестве ответа для вас. – user1164630
@ user1164630 Настройка хоста для ваших служб WCF - еще одна проблема. В вашем примере консольное приложение используется для размещения служб WCF.Вы также можете использовать IIS и поместить конфигурацию в свой файл web.config –