0

C#プロジェクトに含めたDLLがあります。これを「one.dll」と呼びましょう。このDLLには、「staticclass」という名前の静的クラスが含まれています。

同じプロジェクトに含めた別のDLLがあります。これを「two.dll」と呼びましょう。このDLLには、「staticclass」という名前の静的クラスも含まれています。

プロジェクトに両方のDLLを同時に含めて、「staticclass」にアクセスしようとすると、当然エラーが発生します。クラスの名前を変更したり、何らかのエイリアスを付けたりする方法はありますか?たとえば、「one.dll」の「staticclass」はそのままで、「two」の「staticclassTwo」にエイリアスを付けることができます。 .dll "

「one.dll」と「two.dll」の両方のソースコーデックにアクセスできないことに注意してください

4

2 に答える 2

8

(2つのクラスも同じ名前空間にあると想定しています。そうでない場合は、簡単です。usingエイリアスには単純なディレクティブを使用するか、コードで完全修飾名を使用してください。)

あなたは確かにエイリアスを与えることができます-externエイリアス。事実上、これは名前空間の差別化の別のレベルとして「アセンブリ」を追加します。

もちろん、可能な場合はこの状況を回避する必要がありますが、絶対に必要な場合に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 に答える