刚创建了一个包含一些方法的.dll文件。我有另一个项目,其中包含一个类库和客户端应用程序,它们之间相互引用并且工作正常。
问题是我引用了我刚刚在类库中创建的.dll,但是无法使用.dll中提供的方法。 (我可以在对象浏览器中看到它们,一切看起来都很好)。
就像我尝试的那样:
Cache cache = new Cache("blabla");
我明白了:
我做的引用.Cache'是一个命名空间,但是像'type'一样使用。
但是当我在客户端应用程序(这是一个控制台应用程序)中添加引用时。然后我没有遇到任何问题,可以轻松使用这些方法。为什么在类库中给出我的问题?
任何建议
答案 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();