AspNetCore Identity 2.0 中的 IOptions 是什么?

What is IOptions in AspNetCore Identity 2.0?

我想了解身份是如何组合在一起的。我想实现 Dapper 而不是 Entity Framework,但我觉得为了将来能够提供支持,我需要了解发生了什么。

因此,我从此处的身份存储库下载了 2.0.0 版本:https://github.com/aspnet/Identity/releases 并开始四处寻找。

我现在卡住的部分是IOptions<IdentityOptions>需要UserManager传入的部分。查看 IdentityOptions class 本身,我知道这些是 PasswordOptions 等的配置。所以我需要实例化并设置它们,然后绑定它们。

但是,我不明白的部分是IOptions界面。它似乎是一个包装器,但它为什么在那里,它的用途是什么?为什么不自己创建 IdentityOptions,为什么需要将其包装在 IOptions 接口中?

据我了解,IOptions 是用于检索任何已配置对象及其基础属性的接口。例如,您在 IdentityOptions class 下有多个 Options 对象。您可以通过将选项 class 添加到服务集合对象中,将您的 IdentityOptions 插入 DI 管道,而不是将它们一一实例化。这样您就可以通过构造函数注入在任何地方调用访问任何选项对象(来自 IdentityOptions class)。

要记住的一点是,IdentityOptions 下的所有 "Options" 对象本身就是 classes。因此,为了避免所有手动实例化,您可以通过将 IOptions 包装在您的 Options class.

周围来使用 DI 管道

希望这对您有所帮助。