无法创建组件,因为它具有要满足的依赖性

我正在学习DDD,n-Tier,Repositoriess等。 有人把我指向ASP.NET Boilerplate,我决定用它开始一个测试项目。 我从来没有处理dependency injection,所以这对我来说都是新的,但它依赖于它使用ius Castle Windsor的DI依赖。 现在,我创建了一个模型,并从这个模型中创建了一个接口。 我还添加了一个服务。 每当我启动应用程序时,它都会给我这个错误:

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 ,如果你添加App,它们会自动注册到class级的名字。 基本上,这是我的代码:

IMemberInfoRepository

  public interface IMemberInfoRepository : IRepository { } 

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(input)); } 

IMemberAppService

 public interface IMemberAppService :IApplicationService { void Create(MemberInfoDto input); } 

所以,我在这里。 卡住。 我读了一些Castle Windsor官方文档,但由于这是我的第一个牛仔竞技表演,所以我坚持要做什么。 任何其他东西将不胜感激。

我有同样的问题,但我可以解决它!

这是IIS给出的错误的屏幕截图。

错误的原因是ABP找不到已定义的实体类Member

解决方案是添加代码public virtual IDbSet Members { set; get; } public virtual IDbSet Members { set; get; }EntityFramework项目的DbContext中。

在我的同事更新了一个ABP版本后,我遇到了同样的错误。 我检查了我的旧代码。 发现,他错过了将一个cs文件附加到项目中。 然后我恢复了它,现在它工作了。 请检查您是否在同一路径中有类似的文件,希望它可以帮助您。

[EF项目] \ EntityFramework \ Repositories \ xxxxRepository.cs

如果你没有,请创建一个与xxxxRepositoryBase.cs类似的版本

Interesting Posts