1
Visual Studio 2017で新しいASP.NETコアプロジェクトを作成した後、AccountController
とManageController
の2つのコントローラを取得します。どちらのコントローラーもコンストラクター経由で依存関係注入を使用してApplicationSignInManager
とApplicationUserManager
を取得します。既定のプロジェクトの依存関係の不一致の解消
AccountController
さんDispose
:
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (_userManager != null)
{
_userManager.Dispose();
_userManager = null;
}
if (_signInManager != null)
{
_signInManager.Dispose();
_signInManager = null;
}
}
base.Dispose(disposing);
}
ManageController
さんDispose
:
protected override void Dispose(bool disposing)
{
if (disposing && _userManager != null)
{
_userManager.Dispose();
_userManager = null;
}
base.Dispose(disposing);
}
なぜマネージャではありませんManageController
処分サイン? AccountController
と異なるのはなぜですか?ファンのコメントに基づいて
興味深い質問です。私は複製することができました。興味深いのは、 'ApplicationSignInManager'は' ApplicationUserManager'に依存しているので、何かがあれば、これは(それが同じオブジェクトであると仮定すると)不整合な状態になります。どちらにしても。オブジェクトのスコープ/ライフタイムはインスタンス化の知識がある人、この場合はIoCコンテナ(上記の相互依存性が理由である)によって制御されるべきだと私は考えています。 – JuanR