0
デフォルトのMVCプロジェクトで、私はAccountControllerに新しいインターフェイスを注入しようとしています。アカウントコントローラにインターフェイスを挿入する方法
private readonly INotificationService _notificationService;
private ApplicationSignInManager _signInManager;
private ApplicationUserManager _userManager;
public AccountController(){}
public AccountController(ApplicationUserManager userManager,
ApplicationSignInManager signInManager, INotificationService notificationService)
{
UserManager = userManager;
SignInManager = signInManager;
_notificationService = notificationService;
}
しかし、私の_notificationServiceは、彼らが空のコンストラクタを使用しているので、私が思うに、常にnullです。
私はこのように、私のコンポーネントを登録するUnity.MVC5を使用しています:
container.RegisterType<IMessageSender, AuthMessageSender>();
container.RegisterType<INotificationService, NotificationService>();
container.RegisterType<AccountController>(new InjectionConstructor());
container.RegisterType<ManageController>(new InjectionConstructor());
私はAccountControllerに私のインターフェイスを注入することができますか見当がつかない。いくつかのアイデアや記事に答えがありますか?
あなたはそれが原因であるかどうかを確認するために、デフォルトのコンストラクタを削除しようとしたことがありますか? – Nkosi
デフォルトのコンストラクタを削除すると、エラーが発生します。 – AFetter
そして、何がエラーです。デフォルトのコンストラクタがないと不平を言っている場合は、DependencyResolverを設定していない可能性があります。または依存関係の1つが初期化時に例外を持ちます。依存性注入がどのようにセットアップされたかを示します。 – Nkosi