2

Hasher という名前の名前空間に Hasher という名前のクラスがあります。したがって、完全修飾名は次のようになります。

Hasher.Hasher ...

外部アセンブリ (C#) で Hasher クラスを使用しようとしています。名前空間をクラスにインポートしました。

using Hasher;

しかし、Hasher クラスを使用しようとすると、コンパイラはそれを見つけられません。

using Hasher;

namespace Test {
  ///<summary>
  ///This is a test class for HasherTest and is intended
  ///to contain all HasherTest Unit Tests
  ///</summary>
  [TestClass()]
  public class HasherTest {

    ///<summary>
    ///A test for GenerateFromRawData with null seed
    ///</summary>
    [TestMethod()]
    [ExpectedException( typeof( ArgumentNullException ) )]
    public void GenerateFromRawDataTest_NullSeed() {
      byte[] seed = null;
      byte[] salt = null;

      seed = null;
      salt = null;

      Hasher.GenerateFromRawData( seed, salt );
    }

}

生成:

Error   The type or namespace name 'GenerateFromRawData' does not exist in the namespace 'Hasher' (are you missing an assembly reference?)  M:\j41833b_UR403088_ReportingDotNet\ReportingDotNet\src\AG385\_UnitTest\HasherTest.cs   _UnitTest

「使用」を正しく使用していませんか? (私の主な言語は VB.NET なので、私の C# は少し錆びています。MSDN のドキュメントをざっと調べても、何も明らかになりませんでした)

編集:これはうまくいきます。

namespace Test {
  ///<summary>
  ///This is a test class for HasherTest and is intended
  ///to contain all HasherTest Unit Tests
  ///</summary>
  [TestClass()]
  public class HasherTest {

    ///<summary>
    ///A test for GenerateFromRawData with null seed
    ///</summary>
    [TestMethod()]
    [ExpectedException( typeof( ArgumentNullException ) )]
    public void GenerateFromRawDataTest_NullSeed() {
      byte[] seed = null;
      byte[] salt = null;

      seed = null;
      salt = null;

      Hasher.Hasher.GenerateFromRawData( seed, salt );
    }

}
4

1 に答える 1

3

次の記事を提供してくれた@asawyerに感謝します。

http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace-part-one.aspx

2つの答えがあります。1つは、externエイリアスを使用します。

http://msdn.microsoft.com/en-us/library/ms173212(v=vs.100).aspx

2つ目は、Hasher名前空間の名前を変更することです。(これは、ソースコードを制御でき、私が選択したオプションである場合に推奨されます。)

于 2012-06-12T17:50:15.413 に答える