「ユーザーサービス」クラスを作成しようとしています。このクラスでは、これを通過する必要のあるメソッドのみを公開しています。このメソッドの1つはFindByIdです。ここに私のコードは次のとおりです。IDでユーザーを見つけることができません
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin.Security.DataProtection;
public interface IUserService : IDisposable
{
Task<CustomUser> FindByIdAsync(string userId);
ICustomUser FindById(string userId);
}
public class UserService : UserManager<CustomUser>, IUserService
{
public UserService(IUserStore<CustomUser> store, IDataProtectionProvider dataProvider)
: base(store)
{
UserValidator = new UserValidator<CustomUser>(this)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
PasswordValidator = new PasswordValidator
{
RequiredLength = 8,
RequireNonLetterOrDigit = true,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = true,
};
UserLockoutEnabledByDefault = true;
DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(1);
MaxFailedAccessAttemptsBeforeLockout = 5;
var dataProtectionProvider = dataProvider;
if (dataProtectionProvider != null)
{
UserTokenProvider =
new DataProtectorTokenProvider<CustomUser>(dataProtectionProvider.Create("ASP.NET Identity"));
}
}
public new async Task<ICustomUser> FindByIdAsync(string userId)
{
return await base.FindByIdAsync(userId);
}
public ICustomUser FindById(string userId)
{
return base.FindById(userId);
}
}
FindByIdAsyncメソッドが正常に動作します、しかしFindById方法もコンパイルされません。私のオートコンプリートは、方法があることを示唆しているが、私はそれを入力すると、それが赤になり、こう述べています。
Microsoft.AspNet.Identity.UserManagerは何午前FindById
の定義が含まれていません。私は間違っている?
EDIT:
FindByIdはUserManagerExtensions(https://msdn.microsoft.com/en-us/library/dn497471(v=vs.108).aspxを参照)から来ています。これは、拡張クラスを何とか拡張する必要があることを意味しますか?私が実際にやろうとしていることは、IUserServiceであるインターフェイスを介してこのメソッドを使用できるようにすることですが、そこに参照を追加すると、上記のようにほとんど成功しなかったメソッドを実装する必要があります
なぜdownvoteですか? – Bojan
いつものように、注意を払うとエラーが最も役に立ちます:このエラーは、そのためのfindbyidがないことを示しています。そしてそこにはない。 MSDNを参照してください。https://msdn.microsoft.com/en-us/library/dn613290(v=vs.108).aspx –
@trailmax FindByIdAsyncメソッドは正常に動作します。FindByIdメソッドを動作させようとしています – Bojan