无法创建组件,因为它具有需要满足的依赖项
Can't create component as it has dependencies to be satisfied
我正在学习 DDD、n-Tier、Repositories 等。有人向我指出 ASP.NET Boilerplate,我决定使用它开始一个测试项目。我从来没有处理过依赖注入,所以这对我来说是全新的,但是它使用的 DI 依赖 ius Castle Windsor。现在,我创建了一个模型,并从这个模型创建了一个接口。我还添加了一个服务。每当我启动应用程序时,它都会给我这个错误:
Can't create component 'TestApp.Services.MemberInfo.MemberAppService'
as it has dependencies to be satisfied.
'TestApp.Services.MemberInfo.MemberAppService' is waiting for the following dependencies:
- Service 'TestApp.Repositories.IMemberInfoRepository' which was not registered.
我知道你必须注册服务和类似的东西,但是阅读 ABPs 文档它在这里说,http://www.aspnetboilerplate.com/Pages/Documents/Dependency-Injection#DocAbpInfrastructure,如果你将应用程序添加到 class 的名称,它们会自动注册].基本上,这是我的代码:
IMemberInfoRepository
public interface IMemberInfoRepository : IRepository<MemberInfo, Guid>
{
}
MemberAppService
public class MemberAppService : IMemberAppService
{
private readonly Repositories.IMemberInfoRepository _memberInfoRepository;
public MemberAppService(Repositories.IMemberInfoRepository memberInfoRepository)
{
_memberInfoRepository = memberInfoRepository;
}
public void Create(MemberInfoDto input)
{
_memberInfoRepository.Insert(AutoMapper.Mapper.Map<m.MemberInfo>(input));
}
IMemberAppService
public interface IMemberAppService :IApplicationService
{
void Create(MemberInfoDto input);
}
所以,我来了。卡住。我阅读了一些 Castle Windsor 官方文档,但由于这是我的第一个牛仔竞技表演,所以我不知道该怎么做。任何其他将不胜感激。
我遇到了同样的问题,但我可以解决!
这是IIS报错的截图。
错误原因是ABP找不到定义的实体class Member
.
解决方案是在 EntityFramework
项目的 DbContext 中添加代码 public virtual IDbSet<Members> Members { set; get; }
。
同事更新了一个ABP版本后,我也遇到了同样的错误。我检查了我的旧代码。发现,他错过了将一个cs文件附加到项目中。然后我恢复了它,现在它可以工作了。请检查您的同路径下是否有类似的文件,希望对您有所帮助
[EF 项目]\EntityFramework\Repositories\xxxxRepository.cs
如果您没有,请创建一个与 xxxxRepositoryBase.cs
类似的
我正在学习 DDD、n-Tier、Repositories 等。有人向我指出 ASP.NET Boilerplate,我决定使用它开始一个测试项目。我从来没有处理过依赖注入,所以这对我来说是全新的,但是它使用的 DI 依赖 ius Castle Windsor。现在,我创建了一个模型,并从这个模型创建了一个接口。我还添加了一个服务。每当我启动应用程序时,它都会给我这个错误:
Can't create component 'TestApp.Services.MemberInfo.MemberAppService'
as it has dependencies to be satisfied.
'TestApp.Services.MemberInfo.MemberAppService' is waiting for the following dependencies:
- Service 'TestApp.Repositories.IMemberInfoRepository' which was not registered.
我知道你必须注册服务和类似的东西,但是阅读 ABPs 文档它在这里说,http://www.aspnetboilerplate.com/Pages/Documents/Dependency-Injection#DocAbpInfrastructure,如果你将应用程序添加到 class 的名称,它们会自动注册].基本上,这是我的代码:
IMemberInfoRepository
public interface IMemberInfoRepository : IRepository<MemberInfo, Guid>
{
}
MemberAppService
public class MemberAppService : IMemberAppService
{
private readonly Repositories.IMemberInfoRepository _memberInfoRepository;
public MemberAppService(Repositories.IMemberInfoRepository memberInfoRepository)
{
_memberInfoRepository = memberInfoRepository;
}
public void Create(MemberInfoDto input)
{
_memberInfoRepository.Insert(AutoMapper.Mapper.Map<m.MemberInfo>(input));
}
IMemberAppService
public interface IMemberAppService :IApplicationService
{
void Create(MemberInfoDto input);
}
所以,我来了。卡住。我阅读了一些 Castle Windsor 官方文档,但由于这是我的第一个牛仔竞技表演,所以我不知道该怎么做。任何其他将不胜感激。
我遇到了同样的问题,但我可以解决!
这是IIS报错的截图。
错误原因是ABP找不到定义的实体class Member
.
解决方案是在 EntityFramework
项目的 DbContext 中添加代码 public virtual IDbSet<Members> Members { set; get; }
。
同事更新了一个ABP版本后,我也遇到了同样的错误。我检查了我的旧代码。发现,他错过了将一个cs文件附加到项目中。然后我恢复了它,现在它可以工作了。请检查您的同路径下是否有类似的文件,希望对您有所帮助
[EF 项目]\EntityFramework\Repositories\xxxxRepository.cs
如果您没有,请创建一个与 xxxxRepositoryBase.cs
类似的