1
我曾經在一個項目模型下面的類:ASP.NET核心服務登記錯誤
public interface IUserService
{
IEnumerable<ApplicationUser> GetUsers(string FirstName = null);
ApplicationUser GetUserById(string Id);
ApplicationUser GetUserByUsername(string Username);
void CreateUser(ApplicationUser User);
void SaveUser();
}
public class UserService : IUserService
{
private readonly IUserRepository usersRepository;
private readonly IUnitOfWork unitOfWork;
public UserService(IUserRepository usersRepository, IUnitOfWork unitOfWork)
{
this.usersRepository = usersRepository;
this.unitOfWork = unitOfWork;
}
#region Members
public void CreateUser(ApplicationUser User)
{
throw new NotImplementedException();
}
public ApplicationUser GetUserById(string Id)
{
var user = usersRepository.GetUserById(Id);
return user;
}
public ApplicationUser GetUserByUsername(string Username)
{
var user = usersRepository.GetUserByUsername(Username);
return user;
}
public IEnumerable<ApplicationUser> GetUsers(string FirstName = null)
{
if (string.IsNullOrEmpty(FirstName))
{
return usersRepository.GetAll();
}
return usersRepository.GetAll()
.Where(c => c.Profile.FirstName == FirstName);
}
public void SaveUser()
{
unitOfWork.Commit();
}
#endregion
}
在我的ASP.NET核心(完整的.NET框架),在Startup.cs我有:
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
services.AddScoped<IUserService, UserService>();
我得到一個錯誤,當我運行應用程序:
InvalidOperationException: Unable to resolve service for type 'Data.Repositories.Identity.IUserRepository' while attempting to activate 'Service.Identity.UserService'.
就像我說的上面,這是一個ASP.NET核心與完整的.NET框架。有什麼想法嗎?
IUnitOfWork和IUserRepository是否也註冊在您的服務集合中?就我所見,這兩項在UserService中是必需的。 –
我使用具有以下接口的存儲庫模式:IDbFactory,IUnitOfWork,IRepository。我沒有在我的Startup.cs文件中註冊它們中的任何一個。我應該註冊所有? –