【问题标题】:Building a re-usable class library in C#在 C# 中构建可重用的类库
【发布时间】:2012-12-21 07:02:10
【问题描述】:

我为同事构建了一个类库,可以使用它,在给她 .dll 文件后,我无法开始工作。 .dll 文件的名称是“BatchDashboard”。命名空间的名称是“BatchDashboard”,类的名称(只有一个)是“BatchDashboard”。这三个名字都一样有问题吗? Visual Studio 能够很好地添加引用。但是,这个声明:

using BatchDashboard;

吐出以下错误:

The type or namespace name 'BatchDashboard' could not be found (are you missing a using directive or an assembly reference?

同样,我无法实例化新的“BatchDashboard”对象。

谁能告诉我我做错了什么?

谢谢!

编辑

我尝试在我的计算机上添加对另一个测试项目的引用并收到相同的结果。

第二次编辑

将“BatchDashboard”类的访问修饰符更改为 public 解决了 using 语句的问题。但是,当我尝试像这样实例化一个对象时:

BatchDashboard batch = new BatchDashboard();

我收到以下错误:

'BatchDashboard' is a namespace but is used like a 'type'

我必须有不同的类和命名空间名称才能工作。谢谢!

【问题讨论】:

  • 也许您的项目针对的是比您同事的更高版本的 .NET Framework?

标签: c# class dll


【解决方案1】:

我想,我知道你有什么问题。创建类文件时,您可能没有将类的访问权限更改为“公共”。在 .Net 中,除非程序集中有公共成员,否则不会在“using”指令中找到命名空间。 基本上,检查您拥有的课程是否是“公共课程”

【讨论】:

  • 另外,作为实践,您永远不应该使用与命名空间相同的名称来命名您的对象。只是一个提示。
【解决方案2】:

以下是我的最佳猜测:

  1. 您针对错误的 CPU 目标编译它
  2. 您有一个运行时库的依赖项,应将其添加为对 项目。

【讨论】:

  • 我想这可能是它。但是,我正在考虑的参考是典型的 .Net 参考:System.Data & System.Data.SqlClient。
  • 如果你曾经使用过 DataContractJsonSerializer 类,它是有依赖关系的,但是 VS 从不告诉你。
【解决方案3】:

确保:

  • 添加库作为对项目的引用
  • 与您项目的 .NET 版本相比,该库的 .NET 版本相同或更早。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    相关资源
    最近更新 更多