我一直有奇怪的问题,想知道是否因为我使用与命名空间同名的类型

本文关键字:命名空间 类型 因为 想知道 一直 问题 是否 | 更新日期: 2023-09-27 17:56:41

>更新:

我最终以一种我

意想不到的方式解决了这个问题——这显然不是我认为的命名空间/类型名冲突(当我重新做它并且它以完全相同的方式失败时,令我惊讶)。 我认为这可能是小 VS 错误 - 这是发生的事情:

-

-> 错误路径

  • 我添加了一个 Winforms 项目
  • 我添加了对 Lib1 的引用
  • Lib1 作为添加的引用出现
  • (我修改了我对VS何时"混淆"的估计) 下次编译时,事情会损坏,就好像我从未添加对 Lib1 的引用一样。
-

->令人惊讶的方式,我最终解决了这个问题:

  • 随机拍摄是因为我很困惑,我决定以(稍微)不同的方式添加库。
  • 我没有右键单击"解决方案资源管理器"中的"引用"节点并从"解决方案"选项卡中选择 Lib1,而是从"最近"选项卡中选择了它。
  • 当我添加它
  • 时,令我惊讶的是,VS 抱怨它无法添加库
  • 原因是我的库设置为 .NET 4,而我的 Winforms 应用程序默认为客户端配置文件。
-

-> 当我将 WinForms 应用程序切换到 .NET 4 时,该问题已解决

背景/动机:

我是一个孤独的开发人员 - 这就是为什么当我遇到这样的束缚时,我有时会花 20 分钟,如果我无法弄清楚,我会完全解决它。 有时这些问题会再次出现,我又花了 20 分钟,第二次对解决方法感到恼火,这终于让我真的很想弄清楚。 现在的情况就是这样。

问题描述:

我正在

编码,在这种情况下,我正在用VS10对 ASP.NET 网站进行原型设计。

  • 新项目,ASP.NET 网站:Web1(创建解决方案)
  • 添加项目、C# 库、Lib1(添加到解决方案)
  • Lib1:添加模型.cs,视图.cs,演示者.cs,...等
  • Web1:在默认.aspx中添加数据列表,通过 Lib1 绑定数据
  • 测试它是否有效

---> 现在我想看到我的 Lib1 在 winforms 项目中的工作,基本上向自己证明我可以编写不关心 UI 的库代码

  • 添加项目,WinformsApp1(添加到解决方案)
  • 将 DataGridView 添加到 Form1,通过 Lib1 绑定数据

然后最诡异的事情发生了(至少对我来说):起初,添加对 Lib1 的引用并在 Form1 上实现 IView 接口工作正常,但是一旦 VS 自动填充 IView 的存根,一切都进入状态,就好像我没有添加对 Lib1 的引用一样。 也就是说,编译器告诉我它不知道 IView 的定义,并礼貌地提醒我我可能忘记添加引用,但问题是它正在谈论它刚刚生成的代码,如果没有该引用,它将无法完成。

注意:如果没有人知道这是什么,而我错了,这是孤独开发人员综合症的症状,我将再次研究该示例并发布代码(我只是删除了它)。

我一直有奇怪的问题,想知道是否因为我使用与命名空间同名的类型

听起来您的

接口中有一个与命名空间同名的方法,因此当您填充接口时,编译器无法再区分命名空间和方法。