我有一个 dotnet core 控制台应用程序,希望将一个类注入消费者中。 我在这里使用单个消费者设置了接收端点。
sbc.ReceiveEndpoint(appSettings.QueueUrl, ep => {
ep.Consumer<AddAchievementConsumer>();
});
然后我在这里有我的消费类。
public class AddAchievementConsumer : IConsumer<AddAchievementQueueMessage> {
private readonly IRepository repository;
private readonly IAchievementFactory achievementFactory;
public AddAchievementConsumer(IRepository repository, IAchievementFactory achievementFactory) {
this.repository = repository;
this.achievementFactory = achievementFactory;
}
public Task Consume(ConsumeContext<AddAchievementQueueMessage> context) {
var achievementService = new AchievementManagementService(this.repository, this.achievementFactory);
achievementService.CreateAchievement(context.Message.Title, context.Message.Description, context.Message.Points);
return Task.CompletedTask;
}
}
我希望能够使用依赖注入将 IRepository 和 IAchievementFactory 注入到消费者中。 现在我知道我可以去的终点:
ep.Consumer(() => new AddAchievementConsumer(repository, achievementFactory));
现在这样就可以了,但我希望能够使用依赖注入来自行注入它们,而不必自己动手,因为将来会有多个消费者。
有人可以帮忙吗?谢谢。