Я пытаюсь получить из топи c с помощью Masstransit, но я не могу понять, как вызвать метод потребления?
Вот моя конфигурация:
services.AddMassTransit(serviceCollectionConfigurator =>
{
serviceCollectionConfigurator.AddBus(provider => Bus.Factory.CreateUsingAzureServiceBus(busFactoryConfigurator =>
{
var host = busFactoryConfigurator.Host(new Uri(serviceBusConfig.HostName), hostConfigurator =>
hostConfigurator.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
serviceBusConfig.SharedAccessKey,
serviceBusConfig.Key));
//busFactoryConfigurator.Message<IInterface>(topology => topology.SetEntityName(sevicesBusConfig.TopicName));
// Subscribe to topic with a subscription
busFactoryConfigurator.SubscriptionEndpoint(serviceBusConfig.Subscription, serviceBusConfig.TopicName, e =>
{
e.ConfigureConsumer<ConsumeMessageService>(provider);
});
}));
});
Вот мой ConsumerMessageService
public class ConsumeMessageService : IConsumeMessageService, IConsumer<MessageA>
{
public Task Consume(ConsumeContext<MessageA> context)
{
return context.RespondAsync(new ResponseA { Value = context.Message.ToString() });
}
}
public class ResponseA
{
public string Value { get; set; }
}
Как я могу получить доступ к методу Consume из другого сервиса? Должен ли я создать контекст и затем отправить его в качестве параметра?
РЕДАКТИРОВАТЬ: в настоящее время у меня есть 2 сообщения в Azure служебная шина. Как я могу получить сообщения и вернуть их контроллеру? В некоторых случаях я должен получить сообщения от ConsumerService и вернуть их контроллеру. Как я могу это сделать? Можете ли вы показать мне пример этого? Я не могу обдумать это и понять, как я это делаю ..