【发布时间】:2021-11-13 08:51:12
【问题描述】:
我在一个接口中实现 RoleManager 和 UserManager,我知道一些潜在的好处,比如单元测试,这样做有什么缺点吗?
AdministrationDataService.cs:
public class AdministrationDataService : IAdministrationDataService
{
private readonly RoleManager<IdentityRole> _roleManager;
public AdministrationDataService(RoleManager<IdentityRole> roleManager)
{
_roleManager = roleManager;
}
public IQueryable<IdentityRole> GetRolesList()
{
var roles = _roleManager.Roles;
return roles;
}
}
IAdministrationDataService.cs:
public interface IAdministrationDataService
{
IQueryable<IdentityRole> GetRolesList();
}
那我就这样用了。
ViewRoles.cshtml.cs:
public class ViewRolesModel : PageModel
{
public List<IdentityRole> Roles { get; set; } = new List<IdentityRole>();
private readonly IAdministrationDataService _administrationDataService;
public ViewRolesModel(IAdministrationDataService administrationDataService)
{
_administrationDataService = administrationDataService;
}
public void OnGet()
{
Roles = _administrationDataService.GetRolesList().ToList();
}
}
使用这种方法而不是仅在 ViewRoles.cshtml.cs 中使用 RoleManager 还能获得哪些其他好处
【问题讨论】:
-
您在这里遇到什么问题了吗?或者只是想知道一些优势?
-
@TinyWang 我只是想知道一些优点
-
也许依赖注入的优势。
-
我的问题更多是关于将 _roleManager 注入 IAdministrationDataService 然后将 IAdministrationDataService 注入 ViewRoles.cshtml.cs 与直接将 _roleManager 注入 ViewRoles.cshtml.cs 的优缺点
标签: c# asp.net-core .net-core dependency-injection asp.net-identity