3

我创建了一个 C# 类库。在其中我插入两个类。例如:

Apple.cs 橙色.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 形成了几乎完全相同的一个(命名空间 Apples 和类 Apples 将变成“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 后,我似乎只能访问一个命名空间/类(即 Apple)。它允许我访问我在类库中创建的第一个类。不管我做了多少类,我只在我的 DLL 中得到一个。

我在以下方面得到了相同的结果:

Visual Studios 2010 Visual Studios Express 2008 (C#)

旁注:如果我更新一个有效的类(即添加一个新属性),它将在我构建时更改 DLL。我尝试过“清除”、“重建”和“构建”。

编辑:显然我是个白痴,没有意识到橙色不是公开的。一旦我改变它,它就起作用了。不太确定为什么新项目生成的类是“公共的”,但是在添加新类时它不是,反之亦然。

谢谢大家的建议。

4

3 回答 3

5

你的班级没有像你的班级Orange那样声明。尝试将其声明为公开 - 然后您应该可以访问它。publicApplesOrange

于 2013-03-20T00:17:24.423 回答
0

在 Visual Studio 中,在解决方案资源管理器中选择 Orange.cs 文件,然后查看“属性”窗格。构建操作是否设置为编译?如果不是,则该文件不会作为源代码包含在内。

出于某种奇怪的原因,Visual Studio 有时会在我创建新文件时将构建操作更改为其他内容。检查此人的博客以获取屏幕截图和类似问题。

http://dimarzionist.wordpress.com/2008/07/24/strange-vs-2008resharper-behaviour-buildaction-property/

于 2013-03-20T00:03:34.563 回答
0
  1. 使您的命名空间名称与您的类名称不同,即命名空间 = AppleS 类 = Apple
  2. 将命名空间 ClassLibraryTest 更改为 FoodLibrary
于 2013-03-20T00:16:55.513 回答