命名空间不被识别?

时间:2012-09-09 16:04:30

标签: c# visual-studio-2010

我在visual studio(2010)中创建了一个非常简单的域层。然后,我使用新的测试向导来创建基本的单元测试。但是,当我尝试输入using语句以便我可以测试我的代码时...它说我的命名空间无法找到...这是我第一次使用visual studio所以我对我正在做的事情感到茫然错。

我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Home
{
    class InventoryType
    {

        /// <summary>
        /// Selects the inventory type and returns the selected value
        /// </summary>
        public class InventorySelect
        {
            private string inventoryTypes;
            public String InventoryTypes
            {
                set
                {
                    inventoryTypes = value;
                }

                get
                {
                    return inventoryTypes;
                }
            }


            /// <summary>
            /// Validate that the inventory is returning some sort of value
            /// </summary>
            /// <returns></returns>
            public bool Validate()
            {
                if (InventoryTypes == null) return false;
                return true;
            }
        }
    }
}

我的测试代码

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Home.InventoryType.InventorySelect;

namespace HomeTest
{
    [TestClass]
    public class TestInventoryTypeCase
    {
        [TestMethod]
        public void TestInventoryTypeClass()
        {
            InventorySelect select = new InventorySelect();
            select.inventoryTypes = "Collection";

            if (Validate() = true)
                Console.WriteLine("Test Passed");
            else
                if (Validate() = false)
                    Console.WriteLine("Test Returned False");
                else
                    Console.WriteLine("Test Failed To Run");

            Console.ReadLine();

        }
    }
}

4 个答案:

答案 0 :(得分:4)

using指的是命名空间,而不是特定的类(除非为类名添加别名)。您的using语句应仅包含单词Home。

using Home.InventoryType.InventorySelect; 
//becomes
using Home;

以下是使用指令MSDN的链接:using Directive (C#)

答案 1 :(得分:2)

InventoryType类声明为public

InventorySelect课程可以是private而不是public

答案 2 :(得分:2)

我假设您的测试类在自己的项目中,因此您需要添加对该项目的引用。 (using语句不添加引用,它只允许您在代码中使用类型而不完全限定其名称。)

答案 3 :(得分:1)

在解决方案中创建“多项目”时(通过向任何现有解决方案添加项目),项目彼此不了解。

转到解决方案资源管理器上的测试项目,在“参考”下,右键单击并选择“添加参考”。然后选择“项目”选项卡,您将能够将项目的引用添加到测试项目中。

另外,请确保将项目中的类定义为“public”,以便能够在测试项目中访问它们。

namespace Home
{
    public class InventoryType
    {
            ...
    }
}

请注意,您仍需要在C#测试类之上使用“using”关键字:

using Home;

namespace HomeTest
{
    public class TestInventoryTypeCase
    {
           ...
    }
}