如何在另一个项目中调用一个项目中的类?
Posted
技术标签:
【中文标题】如何在另一个项目中调用一个项目中的类?【英文标题】:How to call classes from one Project in another Project? 【发布时间】:2012-07-08 03:37:11 【问题描述】:请原谅这个非常愚蠢的问题,但我是 C# 新手。我只是不知道如何在另一个项目中使用来自一个项目的类。
假设我想从 Project1 获取一个字符串到 Project2 并让 Project2 打印该字符串。
我使用“添加引用”菜单从 Project1 中引用 Project2,然后添加“使用 Project2”,然后我将其写入尝试并从“Project2”中的“ClassA”调用“print”。
Project2.ClassA Classa = new Project2.ClassA();
Console.WriteLine(Classa.print);
但我得到的只是错误消息。
那么任何人都可以逐步解释我为什么需要这样做吗?
【问题讨论】:
除了给出错误消息外,通常还需要给出所有代码——在这种情况下,您定义 ClassA 的代码和print
字段的声明。如果没有这种细节,人们只会猜测你的问题是什么。
在不要求任何人修复我的代码时,我要求逐步解释如何从另一个项目调用一个项目。
【参考方案1】:
当您从 Project2 中引用该类时,它可能位于不同的命名空间中。
在您要使用的类的顶部添加命名空间 is(using 语句),或者,将光标移到 Project2.Class 上,让 Visual Studio 为您完成 :-)
【讨论】:
我添加了“使用 Project2;”我在“添加参考”菜单中的“项目”选项卡中引用它仍然没有运气【参考方案2】:将 Classa 公开,并将 Project1 的程序集引用/项目引用添加到 Project2。
How to add assembly reference
【讨论】:
我做了这一切仍然没有运气 =/ 在某处有指南或示例吗? 对于这个命令“ClassA Classa = new.ClassA();”我不断收到两个副本“类型或命名空间名称 'ClassA' 不存在于命名空间 'DoubleProject1' 中(您是否缺少汇编参考?)” 添加DoubleProject1的引用,确保ClassA是公开的【参考方案3】:按照以下说明进行操作:
在解决方案资源管理器中,右键单击您需要引用的项目。
选择“添加参考”。 (后来的版本,即 2015 年以后的版本;虽然不确定;应该是 "Add->Reference"。右键单击 References 并选择 Add Reference 也可以。)
Reference Manager - ProjectName 对话框将会出现。
在左侧窗格中,展开 Projects 菜单。这将在对话框中间填充现有项目的列表。
勾选您需要参考的每个项目前的复选框。
按确定。
完成后,您可以在您引用的项目中使用所有公共和受保护的(假设您从现有的继承)。 确保在导入列表中添加 using NameSpace.Class
。
【讨论】:
哦,天哪。我想清理你的英语和格式,但我很难弄清楚你想说什么。特别是“显示左侧选项的窗口”非常难以理解。【参考方案4】:转到项目说 P2,展开它转到引用右键单击添加引用。转到项目选项卡,然后浏览项目 P1 并单击添加。 之后,您将需要该项目的 using 语句来获取文件。单击重建解决方案,它将为您提供输出。
【讨论】:
以上是关于如何在另一个项目中调用一个项目中的类?的主要内容,如果未能解决你的问题,请参考以下文章
C# Specflow:如何在另一个文件夹的类中调用具有动态表作为参数的方法