9

我正在学习 DDD、n-Tier、存储库等。有人向我指出 ASP.NET Boilerplate,我决定使用它开始一个测试项目。我从未处理过依赖注入,所以这对我来说是全新的,但它使用 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,它们会自动注册到班级的名字。基本上,这是我的代码:

IMemberInfoRepository

    public interface IMemberInfoRepository : IRepository<MemberInfo, Guid>
{

}

会员应用服务

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

所以,我在这里。卡住。我阅读了一些温莎城堡的官方文档,但由于这是我第一次参加牛仔竞技表演,所以我不知道该怎么做。其他任何事情将不胜感激。

4

2 回答 2

14

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

这是 IIS 给出的错误截图。

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

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

于 2015-12-04T07:29:16.360 回答
0

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

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

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

于 2016-05-20T05:59:03.993 回答