如何在另一个项目中调用一个项目中的类?

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:如何在另一个文件夹的类中调用具有动态表作为参数的方法

如何在另一个类中调用列表对象

我可以/如何...在 PHP 中的类之外调用受保护的函数

如何在另一个项目中使用 Geoquery 与 android 中的 geofire 实时数据库?

在 boost.python 中;如何公开包含在另一个类中的类(通过组合)?