如何以正确的方式在项目之间移动类

时间:2013-01-14 10:15:44

标签: c# visual-studio-2010

我知道这不是一个聪明的问题,但我在理解Visual Studio 2010的某些工作时遇到了一些麻烦。

编写一个Windows窗体我需要在一个源(比如说:一个x.cs)文件中移动一个类(比方说:class x),该文件包含在主命名空间中,并汇编到另一个项目(和程序集)在不同的命名空间中。后者是一个旨在收集实用程序类的DLL。可能我是以错误的方式做到了这一点。

症状是:当处于主窗​​体(代码,而不是设计)时,用鼠标在X类的构造函数上按F12会导致显示一个新的源“元数据”,包括类声明(但我仍然可以打开源代码,单击鼠标右键并选择“显示源代码”)。似乎VS无法在解决方案中找到合适的源代码。

我的问题:

  1. 如何通过F12指向适当的方法从中恢复?
  2. 更一般地说,在不同的项目和/或程序集中移动代码的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

我刚刚复制了所描述的问题,但它对我来说很好。让我描述一下我采取的步骤,也许你会发现你做了不同的事情。

  1. 创建新解决方案。
  2. 添加名为FormsApp的新Windows窗体应用程序。这给了我一个名为Form1的表单,其中包含FormsApp的默认命名空间。
  3. 在FormsApp项目中名为util.cs的文件中创建了一个名为Util的类。它获得FormsApp的相同名称空间。
  4. 如果我在Form1构造函数中创建Util类的实例,我可以按F12将其带到Util的定义中。
  5. 在解决方案中创建了一个名为Utility的新类库。
  6. 可以通过多种方式移动文件,但我只需在解决方案资源管理器中单击util.cs文件并将其拖到Utility项目中。这将复制文件,但保留原件。也许你以不同的方式复制了你的文件?
  7. 删除原始文件时,如果尝试编译,则会出现构建错误。这是预料之中的,因为FormsApp项目对新添加的Utility项目中的Util类一无所知。
  8. 在解决方案资源管理器中添加对FormsApp项目中的Utility项目的引用。
  9. 如果您现在尝试构建,那么它应该会成功。在Form1构造函数中按F12,即使我没有更改Util类的命名空间,也会按预期使用Util类的定义。
  10. 如果它有助于澄清事情,这里有一些图像:

    解决方案资源管理器:

    Solution Explorer

    Form1构造函数:

    enter image description here

    Util类:

    enter image description here