我正在使用asp.net 样板来创建新项目。
我已将新服务定义如下:
public class Employee : Entity<int>
{
public string FName { get; set; }
public string LName { get; set; }
}
public interface IEmployeeAppService : IApplicationService
{
Employee AddEmployee(Employee emp);
List<Employee> GetAll();
}
public class EmployeeAppService : MyTestProjectAppServiceBase, IEmployeeAppService
{
private IRepository<Employee, int> _employeeRepository;
public EmployeeAppService(IRepository<Employee, int> repo)
{
_employeeRepository = repo;
}
public Employee AddEmployee(Employee emp)
{
return _employeeRepository.Insert(emp);
}
public List<Employee> GetAll()
{
return _employeeRepository.GetAllList();
}
}
我想在 HomeController 中使用该服务:
public class HomeController : MyTestProjectControllerBase
{
IEmployeeAppService service;
public HomeController(IEmployeeAppService svc)
{
service = svc;
}
}
当我运行应用程序时,出现以下错误:
无法创建组件“MyTestProject.Services.EmployeeAppService”,因为它需要满足依赖关系。
'MyTestProject.Services.EmployeeAppService' 正在等待以下依赖项:
- 服务'Abp.Domain.Repositories.IRepository`2[[MyTestProject.Domain.Employee, MyTestProject.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken= null],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' 未注册。
如何注册EmployeeAppService依赖项HomeController?
更新
我尝试了以下代码
IocManager.Register(typeof(IRepository<Employee, int>),
typeof(EmployeeAppService),
Abp.Dependency.DependencyLifeStyle.Transient);
但随后它显示此错误
已经有一个具有该名称的组件。您是否想修改现有组件?如果不是,请确保指定一个唯一名称。