c# DLL只编译一个类
本文关键字:一个 DLL 编译 | 更新日期: 2023-09-27 18:05:02
我创建了一个c#类库。我在其中插入了两个类。例如:
Apple.csOrange.cs
namespace FoodLibrary
{
namespace Apples
{
public class Apples
{
public string type { get; set; }
public string colour { get; set; }
public string size { get; set; }
}
}
}
对于Orange.cs,几乎形成了一个完全相同的(命名空间apple和类apple将变成"Orange")。
编辑(这里是请求的Orange.cs):
namespace FoodLibrary
{
namespace Orange
{
class Orange
{
public string colour { get; set; }
public string type { get; set; }
public string size { get; set; }
}
}
}
在构建/重建任何组合后,我将在调试文件夹中得到一个.dll。在引用此DLL时,似乎我只能访问一个命名空间/类(即。苹果)。它允许我访问我在class Library中创建的第一个类。不管我创建多少个类,我只在DLL中得到一个。
我也有同样的结果:
Visual studio 2010Visual studio Express 2008 (c#)
旁注:如果我更新一个类的工作(即。添加一个新的属性),它将改变DLL时,我构建。我试过"clear"、"rebuild"answers"build"。
编辑:显然我是个白痴,没有意识到橙色不是公开的。一旦我改变了它,它就起作用了。不太确定为什么新项目生成的类是"公共的",但当添加一个新类时,它不是,反之亦然。
谢谢大家的建议。
您的Orange
类不像您的Apples
类那样声明为public
。尝试将Orange
声明为公共的-您应该能够访问它。
在Visual Studio中,在解决方案资源管理器中选择Orange.cs文件,并查看属性窗格。生成操作设置为编译吗?如果没有,则该文件没有作为源代码包含。
Visual Studio,出于一些奇怪的原因,有时在我创建新文件时将构建操作更改为其他内容。看看这家伙的博客截图和类似的问题。
http://dimarzionist.wordpress.com/2008/07/24/strange - vs - 2008 resharper -行为- buildaction property/
- 保持您的命名空间名称与您的类名称不同,即namespace = AppleS class = Apple
- 将命名空间ClassLibraryTest更改为FoodLibrary