1

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

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

就像我尝试时一样:

Cache cache = new Cache("blabla");

我得到:

我所做的引用。Cache' 是一个名称空间,但它的使用类似于“类型”。

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

有什么建议么

4

3 回答 3

2

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

var cache = new SomeNamespace.Cache();

或者使用类的别名:

using MyCache = SomeNamespace.Cache;
...
var cache = new MyCache();
于 2012-07-02T12:27:01.107 回答
2

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

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

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

尝试遵循命名空间命名准则来避免这种情况:

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

于 2012-07-02T12:27:24.783 回答
0

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

于 2012-07-02T12:27:56.893 回答