Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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# NSubstitute不处理内部属性_C#_Internal_Nsubstitute - Fatal编程技术网

C# NSubstitute不处理内部属性

C# NSubstitute不处理内部属性,c#,internal,nsubstitute,C#,Internal,Nsubstitute,假设我有一个如下的类: public abstract class Test { internal abstract int Prop { get; } } 现在,我尝试使用NSubstitute制作一个模拟: var mock = Substitute.For<Test>(); var mock=Substitute.For(); 但这是失败的: 来自程序集的类型“Castle.proxy.TestProxy”中的方法“get_Pro

假设我有一个如下的类:

public abstract class Test
{
    internal abstract int Prop 
    {
        get;
    }
}
现在,我尝试使用NSubstitute制作一个模拟:

var mock = Substitute.For<Test>();
var mock=Substitute.For();
但这是失败的:

来自程序集的类型“Castle.proxy.TestProxy”中的方法“get_Prop” 'DynamicProxyGenAssembly2,版本=0.0.0.0,区域性=中性, PublicKeyToken=a621a9e7e5c32e69'没有实现

我曾想将
NSubstitute
添加到
[InternalsVisibleTo]
中,但不幸的是,我的测试程序集已签名,
NSubstitute
未签名,
内部
无法访问
未签名的类


我怎样才能解决这个问题

我找到了解决办法。必须将以下行添加到程序集的
Assembly.cs
文件中,他想要测试(而不是测试程序集):


您在那里使用的是哪种公钥?它是一个常量吗?这是很久以前的事了,但是AFAIR这是一个从NSubstitute程序集中提取的公钥(有一种方法可以通过Visual Studio提供的工具来实现)。是的,它看起来是常量。我将其粘贴到我的assemblyinfo.cs中,并按原样工作。请改用[assembly:InternalsVisibleTo(InternalsVisible.ToDynamicProxyGenAssembly2)]
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]