2017-01-20 1 views
0

Visual Studio 2017では、このように構造化されたプロジェクトファイルがあります。ユニットテスト 'Employee'は名前空間ですが、タイプのように使用されます

[ソースコード]

Project 
    Employee (namespace) 
     Employee (.cs file) 

Tests (Unit Test within the same solution referencing Project) 
    Employee (namespace) 
      EmployeeTest (.cs unit test) 

テスト/会社員/ EmployeeTest.cs

namespace Tests.Employee 
{ 
    [TestClass] 
    public class EmployeeTest 
    { 
     [TestMethod] 
     public void TestConstructor() 
     { 
      Employee employee = new Employee(); // error 

     } 
    } 
} 

エラー:

'Employee' is a namespace but used like a type 

Question:

エラーを修正するだけでなく、ファイルを構造化して名前にぶつからないようにするにはどうすればよいですか?名前空間名をクラス名と同じにしておきたいフォルダ構造は、それを避けることはできません。

注:

私はあなたが名前空間としてTests.Employeeを持って開発

+0

パッケージとは何を指していますか?アセンブリ? – Eric

+0

申し訳ありませんが、javaと混在しています。パッケージは名前空間を意味し、私の質問を編集します。 –

+1

[名前空間とその名前空間の型に同じ名前を使用しないでください。](https://msdn.microsoft.com/en-us/library) /ms229026.aspx)[Eric Lippertの説明](https://blogs.msdn.microsoft.com/ericlippert/2010/03/09/do-not-name-a-class-the-same-as-its)も参照してください。 -namespace-part-one /) –

答えて

2

あなたは(通常は悪いデザインです)まったく同じ名前を持つ名前空間とクラスを持っているので、あなたのインスタンスを作成する必要があります完全修飾名前空間を指定するオブジェクト:

var emp = new Project.Employee.Employee(): 
0

を.NETに初心者です。

変更

namespace Tests.Employee { // rest of the code }

namespace EmployeeTests { // rest of the code }

関連する問題