如何在c#中引用另一个项目?
我在我的解决方案中添加了一个项目Project2。 它已经有另一个项目让我们说项目1.如何从project2调用类和方法到project1?
我做了什么:
我有Project 1及其解决方案。 我将Project 2添加到了Project 1的解决方案中。 Project 1和Project 2都有一个名为Correction的命名空间。 现在,我打电话使用更正。 但是,在Project 1中输入Project2会给我一个错误,因为它声称它不知道它是什么。
我还添加了项目2作为参考。
感谢所有的答案。 我不知道我做错了什么
首先,您需要在Project1中添加对Project2的引用。
如果您转到Project1 – > References – > Add Reference,您应该会看到一个在解决方案中添加项目并添加project2的选项。
添加引用后,要在名称空间Name1.Name2中调用类Foo,可以将该类用作
Name1.Name2.Foo foo = new Name1.Name2.Foo(...);
或者如果您想避免键入,可以在文件顶部附近添加using语句
using Name1.Name2;
现在可以使用Foo引用类,比如
Foo foo = new Foo(...);
注意,您将在Project2中找出命名空间 。 只使用名称Project2将无法正常工作。 查看包含要使用的类声明的文件,并查找命名空间定义。
所以,如果你看到的东西
namespace Name1.Name2 { class Bar { // Blah } // Notice the word public here. public class Foo { // Blah } }
Name1.Name2是Foo的命名空间,这是您需要使用的。
另请注意,您可能需要为要在Project1中使用的类使用公共访问修饰符。 例如,在上面的场景中,您应该能够访问类Foo,但不能访问类Bar。
此页面将帮助您了解名称空间: http : //www.csharp-station.com/tutorials/lesson06.aspx
您必须指定要尝试调用的代码的“路径”。 你可以做到这一点
1)指定要使用的第二个项目/类的名称空间,通常位于代码文件的顶部。
using MySecondProject; var foo = new ClassFromSecondProject();
2)明确指定要使用的类的名称,包括其名称空间
//do stuff var foo = new MySecondProject.ClassFromSecondProject(); //do more stuff
您只需要将Project1中的引用添加到Project 2.您可以通过右键单击解决方案资源管理器窗格中的References
文件夹来执行此操作,然后可以使用Browse
选项查找Project2。 或者,如果它已添加到解决方案中,您只需使用“ Projects
选项卡即可。
只是为了清楚这一点。 将项目添加到Solution
与添加引用不同。 在Visual Studio中打开Project2。 然后将Project1添加到解决方案中,或者右键单击Project2中的References
文件夹并添加对Project1的引用。 为确保您已正确添加引用,请展开references文件夹并validation您是否可以在列表中看到Project1
。
例
创建一个新的控制台应用程序并将其命名为MyApplication
。 然后右键单击Solution
并选择Add New Project
选项并创建一个新的库项目并将其命名为MyLib
。 此时,您只需向1解决方案添加了2个项目,每个项目之间没有创建任何引用。
右键单击MyApplication
项目下的References
文件夹,然后选择Add Reference...
由于MyLib
已经是解决方案的一部分,您可以转到“ Projects
选项卡并从列表中选择MyLib
,这将在MyApplication
创建对此项目的新引用。 如果它不是解决方案的一部分,您可以使用“ Browse
选项卡并通过资源管理器查找项目。
所以此时我们在MyApplication
为MyLib
建立了一个引用。 因此,为了在MyApplication
使用MyLib
的类,我们可以为单元内的项目声明一个using,或者我们可以直接使用完整路径,例如
// main code file in MyApplication using System; using System.Collections.Generic; using System.Linq; using System.Text; using MyLib; // This will allow me to access the classes inside MyLib directly namespace PdfPrinter { class Program { static void Main(string[] args) { // if we have declared the namespace at the top, we can do: MyLibClass cls = new MyLibClass(); // or if you don't want to add the namespace at the top we have to do: MyLib.MyLibClass cls = new MyLib.MyLibClass(); } } }
希望能为你清理一下。
我只是遇到了同样的问题。 我对所有内容进行了三重检查,并添加了引用,项目在同一个解决方案中,一切都已设置好 我也知道我的命名空间,我甚至得到了代码完成,但在构建时,我得到了无法找到命名空间的相同错误。
我花了一个小时来找到它:我添加的项目,没有找到相应的命名空间,被设置为不同的.NET目标框架。 我将我的解决方案更改为“完整”.NET Framework 4而不是客户端配置文件4,但我添加的新项目再次设置为客户端配置文件。
它没有给我一个关于错误配置的正确警告,而是声称无法找到名称空间。
希望这可以帮助某人,并为您节省我浪费的时间。
选择您将使用的项目(例如project1),在解决方案资源管理器中右键单击它,然后单击“添加引用”。
您将能够从那里添加对其他解决方案的引用(project2)。
您所要做的就是在主项目(project1)中添加一个using语句,您将能够正常访问它。
我没有足够的代表来支持汤姆的答案,但它对我帮助很大。 此外,您必须选择与.NET Framework相同的subversion (此外,它是相同的完整/核心/标准等)。 我在测试项目中指定了4.5并得到此错误,将其更改为4.6.1(与其他相同)修复了此问题。
您需要将Project2添加到Project1的引用。 现在您可以从Project2访问这些类。 不要忘记添加正确的命名空间!
如其他人所述,您需要将(现有)项目添加到解决方案中。 然后,您需要在解决方案 – >项目下添加对它们的引用。 现在,它们应该在对象浏览器中显示其命名空间。
还有一件事你需要确定,这需要我进行一些实验才能找到答案。 每当我添加第二个项目时,第一个项目停止工作,错误消息与项目错过引用时相同( “找不到类型或命名空间名称’Ber’(您是否缺少using指令或assembly参考?)“ )。 问题是两个项目在项目属性 – >应用程序中具有相同的默认程序集名称 (“类库”)。 所以给他们独特的免费精选名字大全。 我使用与Default命名空间相同的名称 。
我遇到了同样的问题。 我无法从project2中检测到project1。 我已经从project2添加了对project1的引用,但它仍然无效。 然后我卸载了project1,将其从解决方案中删除。 然后我再次添加它,从project2和ta da做了参考…它工作….. ?
上述就是C#学习教程:如何在c#中引用另一个项目?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/988761.html