-1
私の消費者コードを以下に示します。イベントが発行されたときに 'このオブジェクトに対して定義されたパラメータのないコンストラクタはありません。'例外がスローされます(詳細は下記参照)。 Microsoft.Extensions.DependencyInjectionコンテナのみを使用しています。どうすれば依存関係を注入できますか?このためのコードサンプルがあります。Masstransitで消費者に依存関係を注入する方法
public class UserAddedConsumer : IConsumer<IUserCreated>
{
IUserNotification notificationManager;
ILogger<UserAddedConsumer> logger;
public UserAddedConsumer(IUserNotification notificationManager, ILogger<UserAddedConsumer> logger)
{
this.notificationManager = notificationManager;
this.logger = logger;
}
public Task Consume(ConsumeContext<IUserCreated> context)
{
logger.LogTrace("UserAddedConsumer - Userid: " + context.Message.Id);
return notificationManager.UserCreated(context.Message.User);
}
}
No parameterless constructor defined for this object., System.MissingMethodException: No parameterless constructor defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at MassTransit.ConsumeConfigurators.UntypedConsumerConfigurator1<>c__DisplayClass2_0.<.ctor>b__0()
at MassTransit.Pipeline.ConsumerFactories.DelegateConsumerFactory1.<Send>d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.<GreenPipes-IFilter<MassTransit-ConsumeContext<TMessage>>-Send>d__4.MoveNext()
少なくとも、エンドポイントの設定コードを表示します。 –