我有一个我已经包含在我的C#项目中的DLL。我们称之为“one.dll” 此DLL包含名为“staticclass”的静态类
我有另一个DLL,我也包含在同一个项目中。我们称之为“two.dll” 此DLL还包含名为“staticclass”的静态类
现在当我在我的项目中同时包含两个DLL并尝试访问“staticclass”时,自然它会给出错误。有没有办法我可以更改类的名称或给它一些别名,所以让我们说“one.dll”中的“staticclass”将保持原样,我可以给“staticclassTwo”别名,这是“两个” .DLL“
请注意我无权访问“one.dll”和“two.dll”
的源编解码器答案 0 :(得分:8)
(我假设这两个类也在同一个命名空间中。如果它们不是,那很容易 - 只需使用简单的using
指令作为别名,或者在代码中使用完全限定的名称。)< / p>
你确实可以给别名 - extern alias。实际上,这会将“程序集”添加为命名空间区分的另一个级别。
显然你应该尽可能避免这种情况,但是当你绝对需要时,C#提供了一种非常明确的方式。
Anson Horton在实践中如何使用它们good walkthrough。
答案 1 :(得分:0)
您只需使用 Alias 即可。
在您的代码中,位于命名空间行的下方; 使用下面给出的别名 :
namespace ConsoleApp
{
using ClassOne = Assembly.One.MyClass; /* your dll 1 class */
using ClassTwo = Assembly.Two.MyClass; /* your dll 2 class */
class Program
{
static void Main(string[] args)
{
ClassOne one = new ClassOne();
// Do your stuff with ClassOne object
ClassTwo two = new ClassTwo();
// Do your stuff with ClassTwo object
}
}
}
希望这有帮助!