Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取编译器错误CS0122-';成员';由于其保护级别而无法访问-在尝试访问其他项目中的类时_C#_Nunit_Compiler Errors - Fatal编程技术网

C# 获取编译器错误CS0122-';成员';由于其保护级别而无法访问-在尝试访问其他项目中的类时

C# 获取编译器错误CS0122-';成员';由于其保护级别而无法访问-在尝试访问其他项目中的类时,c#,nunit,compiler-errors,C#,Nunit,Compiler Errors,我正在努力掌握NUnit——我已经在一个项目中安装并成功运行了它。我想将productioncode与testcode分开,所以我在另一个项目中编写测试。测试项目链接到原始项目。(IDE C#Express 2010) 我的测试代码如下所示: using NUnit.Framework; namespace test.Import { [TestFixture] class XMLOpenTest { [Test] public void

我正在努力掌握NUnit——我已经在一个项目中安装并成功运行了它。我想将productioncode与testcode分开,所以我在另一个项目中编写测试。测试项目链接到原始项目。(IDE C#Express 2010)

我的测试代码如下所示:

using NUnit.Framework;

namespace test.Import
{
    [TestFixture]
    class XMLOpenTest
    {
        [Test]
        public void openNotAPath(){
            try
            {
                production.Import.XMLHandler.open("Not A Path");
            }
            catch
            {
                Assert.Fail("File Open Fail");
            }
        }
    }
}
我知道我可以通过公开production.Import.XMLHandler类来解决这个问题,但是我不想改变我的productioncode来允许这种测试


我该怎么做?我可以修改我的测试代码吗?在两个项目中是否有其他好的方法来分离测试代码和生产代码?互联网上有dummys的资源吗?

这通常通过使用解决。请参阅和。

将其设置为
*公共*类XMLOpenTest
。。。。它已经为我工作了很多次;)@Machinarius将其公开是我在5月份的案例中所需要的一切,当时我在项目之间复制带有引用的类,thx@bart公开的好处是,你可以轻松一次。但是现在您的类从程序集外部可见。从长远来看,这可能不是你想要的。如果这是一个概念验证项目,它可能仍然是更好的解决方案。如果这是出于商业目的,你应该考虑在你发布后其他人可以访问什么。效果很好。我将[assembly:InternalsVisibleTo(“测试”)]添加到生产的最高级别—现在一切都很好。坦克。