0

新しいクラスライブラリ(DLL)を作成しましたが、別のアセンブリまたはライブラリのDLLからクラスのオブジェクトを作成しようとすると、機能しなくなり、名前空間または参照の問題が発生する可能性があります。 、おそらく両方とも異なる名前空間があるためです。

DLL内にこのクラスのオブジェクトを作成できるようにするには、他のライブラリクラスの先頭で名前空間を使用するような他のライブラリ名前空間にする必要がありますか?

他のライブラリを右クリックして、この新しいDLLへの参照を追加を選択することをテストしましたが、これは機能しませんでした。いくつかの助けが高く評価されています。

4

5 に答える 5

1

DLL内にこのクラスのオブジェクトを作成できるようにするには、他のライブラリクラスの先頭で名前空間を使用するような他のライブラリ名前空間にする必要がありますか?

はい、そのアセンブリ(DLL)への参照を追加し、ライブラリ内の型がパブリックである場合に限ります。

他のライブラリを右クリックして、この新しいDLLへの参照を追加を選択することをテストしましたが、これは機能しませんでした。いくつかの助けが高く評価されています。

これは、ライブラリ内で定義されたタイプを使用するために絶対に必要です。参照は、コンパイラが型を見つけて使用できるようにするものです。

于 2012-07-30T15:29:02.643 に答える
1

これを参照に追加してから、次のようにアクセスする必要があります。

 using MyLibrary

必要なのはそれだけです。

次に、次のようにメソッドにアクセスします。

 var result = new MyLibrary.MyMethod()
于 2012-07-30T15:29:30.740 に答える
1

他の答えはあなたが使用しなければならないと言うのは間違っていますusing。ステートメントを使用する必要はまったくありません。using一方、参照は必要です。

たとえば、TwentyNine.dll次の型宣言を含む、という名前のアセンブリを作成したとします。

namespace Kreativ.Application.One
{
    public class SomeClass
    {
        public static int GetSomeResult()
        {
            return 863;
        }
    }
 }

ここで、新しいアプリケーションを作成していて、GetSomeResult()を呼び出したいと考えています。 新しいプロジェクトにTwentyNine.dllへの参照を追加する必要があります。

最も一般的には、次のようにメソッドを呼び出します。

using Kreativ.Application.One;
using System;

namespace Kreativ.Application.Two
{
    public class MainClass
    {
        public static void Main()
        {
            int i = SomeClass.GetSomeResult();
            Console.WriteLine(i);
        }
    }
}

しかし、あなたは使用せずにこれを行うことができますusing

namespace Kreativ.Application.Two
{
    public class MainClass
    {
        public static void Main()
        {
            int i = Kreativ.Application.One.SomeClass.GetSomeResult();
            System.Console.WriteLine(i);
        }
    }
}
于 2012-07-30T15:49:10.670 に答える
0

最初に参照を追加する必要があります。次に、それを使用してusingいるファイルで、ファイルの先頭にディレクティブを追加する必要があります。

于 2012-07-30T15:29:19.570 に答える
0
  • まず、ライブラリへの参照を追加する必要があります(私はあなたがしたと思います)

しかし、それは十分ではありません

  • 使用するタイプの名前空間(ライブラリに複数の名前空間が存在する可能性があります)またはファイルの上に 名前空間をデカールする必要があります

    MyLibraryNameSpaceを使用します。

またはコード行で、のように

MyLibraryNameSpace.MyLibType t = new MyLibraryNameSpace.MyLibType();
于 2012-07-30T15:30:43.677 に答える