【发布时间】:2018-03-18 14:30:25
【问题描述】:
好吧,这快把我逼疯了。我有一个几乎完成的项目(效果很好),我想以同样的方式制作另一个。问题是有一个包含两层 DataAccessLayer 和 BusinessLogicLayer 的解决方案。这两个层都有一个模型库,其中包含项目中的所有模型。我需要将模型从第一层转换为管理器库中的第二层模型。这适用于我收到的已完成项目,但我无法在我的项目中实现。 问题是我不能像他们在完成的项目上那样做必要的工作参考。结构是:
业务逻辑层
--经理
----用户
--模型
----用户
数据访问层
--模型
----用户
在 Managers 项目中,我添加了对 DataAccessLayer.Models 的引用。 在 Users 类中我得到了:
using Library.BusinessLogicLayer.Models;
现在在我的项目中,这条线是红色下划线的:
错误 CS0234 类型或命名空间名称“模型”不存在于 命名空间“Library.BusinessLogicLayer”(您是否缺少程序集 参考?)
我什至不确定这在那个原始项目上是如何以及为什么起作用的。但我无法弄清楚,所以它在我的项目上工作正常,结构完全相同。有人对此有任何想法吗?
编辑: 不知道为什么我没有早点上传这个。这是结构。 https://i.imgur.com/srnySFJ.jpg
编辑2: 由于不太好理解,所以我把整个项目上传到了 github 上,所以你可以仔细看看。 https://github.com/Morsusy2k/Library
这就是问题所在: https://i.imgur.com/DvCvnMA.jpg
【问题讨论】:
-
确保您的项目拥有
Rebuild。 stackoverflow.com/a/36655884/2946329 -
重建了很多次,甚至删除了 bin/obj 文件夹,清除了解决方案,重新启动 PC 等等。
-
BusinessLogicLayer 和 DataAccessLayer 只是其中包含项目的解决方案文件夹吗?
-
假设您确实在 Library.DataAccessLayer.Models 程序集的源代码中使用了此类命名空间定义,或者您命名该项目,那么您可能需要执行“使用 Library.DataAccessLayer.Models”。您是否有机会使用项目的默认命名空间设置?最好避免使用这样的东西,并在你的代码中有明确的命名空间。如果您重命名内容并忘记更改该内容,或者如果您忘记在更改后清理/重建,可能会导致问题
-
您需要将每个文件中的
namespace some_namespace.Layer.Folder { }更新到您当前的位置,只要 VS 警报作为命名空间未找到。
标签: c#