0

我有一个包含在我的 C# 项目中的 DLL。我们称它为“one.dll” 这个 DLL 包含一个名为“staticclass”的静态类

我有另一个 DLL,我也包含在同一个项目中。我们称它为“two.dll” 这个 DLL 还包含一个名为“staticclass”的静态类

现在,当我在我的项目中同时包含两个 DLL 并尝试访问“staticclass”时,它自然会出错。有没有办法我可以更改类的名称或给它某种别名所以让我们说“one.dll”中的“staticclass”将保持原样,我可以给“两个”中的“staticclassTwo”提供别名.dll"

请注意,我无权访问“one.dll”和“two.dll”的源编解码器

4

2 回答 2

8

(我假设这两个类也在同一个命名空间中。如果不是,这很容易 - 只需使用简单using的别名指令或代码中的完全限定名称。)

你确实可以给一个别名 - 一个extern alias。实际上,这将“程序集”添加为另一个级别的命名空间差异。

显然,您应该尽可能避免这种情况,但很高兴 C# 提供了一种在您绝对必须时非常明确的方式。

Anson Horton对如何在实践中使用它们进行了很好的演练。

于 2012-02-15T06:27:12.417 回答
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

        }
    }
}

希望这可以帮助!

于 2012-02-15T06:40:22.550 回答