簡體   English   中英

擴展方法中的ASP.NET核心依賴注入

[英]ASP.NET Core Dependecy Injection in Extension Methods

我想擴展UserManager以允許通過UserName查找用戶。 我創建了一個擴展方法。 我注意到最簡單的方法是獲取UserStore 我無法通過UserManager進行此操作,因為Store受到了保護。 我決定使用DI將UserStore注入我的方法中,但我什至不確定是否有可能。

我試圖將IUserStore<T> store作為第二個參數傳遞,但是VS表示沒有給出任何參數。

using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;

namespace Learning.Extensions
{
    public static class UserManagerExtension
    {
        public static Task<T> FindByUserNameAsync<T>(this UserManager<T> userManager, IUserStore<T> store, string userName) where T : class
        {
            var result = store.FindByNameAsync(userName, CancellationToken.None);

            return result;
        }
    }
}

您可以使用現有方法按名稱搜索用戶:

public Task<TUser> UserManager<TUser>.FindByNameAsync(String);

更多信息可以在ASP.NET Core Docs中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM