0

アイデンティティがどのように結びついているかを理解しようとしています。私は、Entity Frameworkの代わりにDapperを実装したいと思っていますが、将来私がサポートできるようになるためには、何が起こっているのかを理解する必要があります。AspNetCore Identity 2.0のIOptionsとは何ですか?

このように私はIDリポジトリから2.0.0リリースをここにダウンロードしました:https://github.com/aspnet/Identity/releasesと見て回り始めました。

私が今すぐ立ち往生している部分は、UserManagerが渡す必要があるIOptions<IdentityOptions>です。 IdentityOptionsクラスそのものを見ると、それらはPasswordOptionsなどの設定であることを理解していますので、それらをインスタンス化して設定してからバインドする必要があります。

ただし、わからない部分はIOptionsです。それはラッパーのようですが、なぜそれがそこにありますか、それの目的は何ですか?なぜ、それだけでIdentityOptionsを作成するのではなく、IOptionsインターフェイスの中にラップする必要があるのですか?

+0

ドキュメントhttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration#using-options-and-configuration-objects – Nkosi

答えて

1

私が理解しているように、IOptionsは設定されたオブジェクトとその基礎となるプロパティを取得するためのインターフェイスです。たとえば、IdentityOptionsクラスの下に複数のOptionsオブジェクトがあります。それらをすべてインスタンス化する代わりに、オプションクラスをサービスコレクションオブジェクトに追加することによって、IdentityOptionsをDIパイプラインに接続します。このようにして、コンストラクタインジェクションを通して任意のOptionsオブジェクト(IdentityOptionsクラスから)へのアクセスを呼び出すことができます。

覚えておくべきことは、IdentityOptionsのすべての「オプション」オブジェクトがそれ自身のクラスであることです。したがって、手動によるインスタンス化をすべて避けるために、DIパイプラインを使用してIOptionsをOptionsクラスにラップすることができます。

これが役に立ちます。

関連する問題