C#代码无法识别自己?

时间:2016-02-19 15:59:14

标签: c# constructor public

我很厌倦,我不知道这里出了什么问题。我有一个带有一个参数的构造函数的DLGAnalysis对象,我正在从Unit Test类调用构造函数。

这是DLGAnalysis对象:

class DLGAnalysis
{
    public DLGAnalysis(string DLG)
    {
        _DLG = DLG;
        _namespaceAnalyses = new List<NamespaceAnalysis>();
    }
}

该课程还有更多内容,但不影响问题。这是单元测试部分:

[TestClass]
public class DLGAnalysisTests
{
    // Blue line here
    private DLGAnalysis dlgAnalysis;
    private const string TestDLGName = "TestDLGName";

    [TestInitialize]
    public void TestSetup()
    {
        // Error here
        dlgAnalysis = new DLGAnalysis(TestDLGName);
    }
}

“DLGAnalysis”下的蓝线说:

'AnalysisXMLParser.DLGAnalysis' is inaccessible due to its protection level

new DLGAnalysis(TestDLGName)下的红线表示:

'AnalysisXMLParser.DLGAnalysis' does not contain a constructor that takes 1 arguments

DLGAnalysis对象显然有一个带有1个参数的公共构造函数。我不知道这里发生了什么。有什么问题?我应该删除该文件并重新开始吗?

1 个答案:

答案 0 :(得分:7)

您忘记设置班级的保护级别

 public class DLGAnalysis // <== public
 {

未设置保护级别会将该类默认为internal

由于您的单元测试项目可能位于不同的程序集中,因此无法访问internal类。

相关问题