如何在c#中引用另一个项目?

C..*_*C.. 27 c# projects-and-solutions project

我在我的解决方案中添加了一个项目Project2.它已经有另一个项目让我们说项目1.如何从project2调用类和方法到project1?

我做了什么:

我有Project 1及其解决方案.我将Project 2添加到了Project 1的解决方案中.项目1和项目2都有一个名为Correction的命名空间.现在,我打电话使用更正.但是,在Project 1中输入Project2会给我一个错误,因为它声称它不知道它是什么.

我还添加了项目2作为参考.

感谢所有的答案.我不知道我做错了什么

小智 48

首先,您需要在Project1中添加对Project2的引用.

如果您转到Project1 - > References - > Add Reference,您应该会看到一个在解决方案中添加项目并添加project2的选项.

添加引用后,要在名称空间Name1.Name2中调用类Foo,可以将该类用作

Name1.Name2.Foo foo = new Name1.Name2.Foo(...);
Run Code Online (Sandbox Code Playgroud)

或者如果您想避免键入,可以在文件顶部附近添加using语句

using Name1.Name2;
Run Code Online (Sandbox Code Playgroud)

现在可以使用Foo引用类,比如

Foo foo = new Foo(...);
Run Code Online (Sandbox Code Playgroud)

注意,您将在Project2中找出命名空间.只使用名称Project2将无法正常工作.查看包含要使用的类声明的文件,并查找命名空间定义.

所以,如果你看到的东西

namespace Name1.Name2 {


    class Bar {
        // Blah
    }

    // Notice the word public here.
    public class Foo {
        // Blah
    }
}
Run Code Online (Sandbox Code Playgroud)

Name1.Name2是Foo的命名空间,这是您需要使用的.

另请注意,您可能需要为要在Project1中使用的类使用公共访问修饰符.例如,在上面的场景中,您应该能够访问类Foo,但不能访问类Bar.

此页面将帮助您了解名称空间:http://www.csharp-station.com/tutorials/lesson06.aspx


Tom*_*Tom 7

我刚刚遇到了同样的问题。我对所有内容进行了三次检查,并添加了参考文献,项目位于同一解决方案中,一切都已设置。我也知道我的命名空间,我什至得到了代码完成,但是在构建时,我得到了相同的错误,找不到命名空间。

我花了一个小时才发现这一点:我添加的项目没有找到相应的命名空间,而是设置为不同的 .NET 目标框架。我将解决方案更改为“完整”.NET Framework 4 而不是 Client Profile 4,但我添加的新项目再次设置为 Client Profile。

它没有给我关于错误配置的适当警告,而是声称找不到命名空间。

希望这对某人有帮助,并节省您我刚刚浪费的时间。