为什么我不能在类库中使用.dll中的对象?

时间:2012-07-02 12:21:29

标签: c# class-library

刚创建了一个包含一些方法的.dll文件。我有另一个项目,其中包含一个类库和客户端应用程序,它们之间相互引用并且工作正常。

问题是我引用了我刚刚在类库中创建的.dll,但是无法使用.dll中提供的方法。 (我可以在对象浏览器中看到它们,一切看起来都很好)。

就像我尝试的那样:

Cache cache = new Cache("blabla");

我明白了:

  

我做的引用.Cache'是一个命名空间,但是像'type'一样使用。

但是当我在客户端应用程序(这是一个控制台应用程序)中添加引用时。然后我没有遇到任何问题,可以轻松使用这些方法。为什么在类库中给出我的问题?

任何建议

3 个答案:

答案 0 :(得分:2)

除非Cache被解释为类库中的命名空间,否则没有理由这样做。在实例化时完全限定类:

var cache = new SomeNamespace.Cache();

或者使用该别名的别名:

using MyCache = SomeNamespace.Cache;
...
var cache = new MyCache();

答案 1 :(得分:2)

这只是与范围内的命名空间的命名冲突,并在其中包含单词Cache,可能在最后(类似namespace MyCompany.MyNamespace.Cache { })。

您需要在线完全限定类型或解开名称空间并在顶部使用using语句:

MyNamespace.Cache cache = new MyNamespace.Cache("");

尝试按照namespace naming guidelines来避免这种情况:

  

不要对命名空间和类使用相同的名称。例如,做   不提供Debug命名空间和Debug类。

答案 2 :(得分:0)

尝试完全限定您的类型:MyDllAssembly.Cache cache = new MyDllAssembly.Cache();