Могу ли я предоставить два метода на моем сервере с NServiceBus? - PullRequest
0 голосов
/ 22 июня 2011

Я искал ответ на этот вопрос, но не смог его найти.Как вы знаете, библиотека NServiceBus поставлялась с примером, который называется интеграцией WCF.У него есть интерфейс, который Сервер предоставляет в качестве службы WCF, верно?Этот интерфейс имеет только один метод внутри.Моя идея состоит в том, чтобы иметь более одного метода внутри этого интерфейса, это возможно?У меня есть свой собственный проект, в котором у меня есть интерфейс с более чем одним методом, и моя идея состоит в том, чтобы эта служба WCF имела метод, похожий на «Process» из примера, который публикует сообщения.

Код:

[ServiceContract]
public interface ICancelOrderService
{
    [OperationContract(Action = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/Process", ReplyAction = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/ProcessResponse")]
    ErrorCodes Process(CancelOrder request);

    [OperationContract]
    ErrorCodes HelloWorld(CancelOrder request);
}

public class CancelOrderService : WcfService<CancelOrder, ErrorCodes>{}

Я пытаюсь унаследовать от ICancelOrderService, но не работает.

Итак, есть предложения?Спасибо людям ...

С уважением, Матиас.


спасибо за ваш скорый ответ.Может быть, мое объяснение не было достаточно ясным.У меня есть мой Сервер, который наследуется от WcfService, но моя идея состоит в том, чтобы иметь более одного OperationContract, похожего на Process, а другие - общего с Wcf OperationContract, чтобы они не взаимодействовали с NSB.

[ServiceContract]
public interface ICancelOrderService
{
    [OperationContract(Action = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/Process", ReplyAction = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/ProcessResponse")]
    ErrorCodes Process(CancelOrder request);

    [OperationContract]
    void HelloWorld(int var);
}

Мой код будет примерно таким.С вашим ответом я понимаю, что код первого поста был неправильным.

Итак, возможно ли это, или я должен искать другой способ реализовать это?

Спасибо, Матиас

1 Ответ

0 голосов
/ 23 июня 2011

Открытая служба WCF предназначена только для получения сообщений на шину.Как только сообщения поступят на шину, они будут отправлены соответствующему обработчику сообщений.Затем вы можете опубликовать с вашего обработчика.NSB будет предоставлять методы для каждого обработчика сообщений, который наследует WcfServiceучебный класс.Просто продолжайте использовать этот класс для предоставления большего количества методов.

...