无法从另一类业务逻辑层访问DataAccess层的公共类

问题描述

为什么不能从另一个类中调用公共类?就像我在.NET项目中曾经做过同样的事情,但是这次我无法从BusinessLogic Layer中的类调用DataAccess Layer的另一类?有什么我可以做的吗?

每当我尝试调用数据访问层类时,都会给出错误消息:

找不到类型或名称空间“ ClassName”(在我的情况下为ReportRepository)。您是否缺少using指令或程序集引用?

解决方法

这不一定是推荐的方法,但是您现在可以“重新”构造器中的依赖项。

using Sify.DataAccess;
using Sify.DataAccess.ReportRepository;
using Sify.ASI.DataAccess.ReportRepository;
using System.Data;
namespace Sify.BusinessLogic.ReportBAL
{
    public class RDLCReportBAL
    {
        private Report2Repository new1;
        public RDLCReportBAL()
        {
            new1 = new Report2Repository();
        }
        
        public DataTable DistrictReportGenerate(int DistrictId)
        {
            return new1.DistrictReportGenerate1(DistrictId);
        }
    }
}

完成这项工作后,更好的方法是使用 DI容器(例如AutoFac)进行构造子注入,但可能会走得更远。

这是一个基本示例:https://www.codeproject.com/Articles/842869/Repository-Pattern-using-Dependency-Injection-Auto

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...