什么是AspNetCore Identity 2.0中的IOptions?

时间:2017-09-09 15:41:59

标签: c# asp.net-identity asp.net-core-2.0 asp.net-core-identity

我试图了解身份如何融合在一起。我想实现Dapper而不是实体框架,但我觉得为了让我能够支持将来我需要了解发生了什么。

因此,我在此处从Identity Repository下载了2.0.0版本:https://github.com/aspnet/Identity/releases并开始环顾四周。

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

但是,我不理解的部分是IOptions界面。它似乎是一个包装器,但为什么它在那里,它的目的是什么?为什么不单独创建IdentityOptions,为什么需要将其包装在IOptions接口中?

1 个答案:

答案 0 :(得分:1)

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

要记住的是,所有&#34;选项&#34; IdentityOptions下的对象本身就是类。因此,为了避免所有手动实例化,您可以通过在Options类中包装IOptions来使用DI管道。

希望这会有所帮助。