Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# can';具有NullableContextAttribute的t存根类_C#_Rhino Mocks - Fatal编程技术网

C# can';具有NullableContextAttribute的t存根类

C# can';具有NullableContextAttribute的t存根类,c#,rhino-mocks,C#,Rhino Mocks,我正在使用一个第三方库,其中有一些类我正试图使用Rhino mock来模拟。当我试图为一个类创建存根时,我得到了以下错误。我找不到对什么是NullableContextAttribute的引用,但我假设它与在某个地方的事件/委托定义上指定一个nullable类型有关。我搞不懂什么是iAttributedISAssembler 我已经读过一些关于使用属性避免应用的解决方案,但我不确定应该给它什么类NullableContextAttribute不是一个可以解析为我能找到的任何命名空间的类 我正在做

我正在使用一个第三方库,其中有一些类我正试图使用Rhino mock来模拟。当我试图为一个类创建存根时,我得到了以下错误。我找不到对什么是NullableContextAttribute的引用,但我假设它与在某个地方的事件/委托定义上指定一个nullable类型有关。我搞不懂什么是iAttributedISAssembler

我已经读过一些关于使用
属性避免应用的解决方案,但我不确定应该给它什么类
NullableContextAttribute
不是一个可以解析为我能找到的任何命名空间的类

我正在做C#,.NETFramework 4.7.2。我尝试将我的C#语言级别更改得更高,但我认为可为null的引用属性位于C#8中的某些东西上,我认为我无法针对任何.NET框架?

var myStub=MockRepository.GenerateStub();
Castle.DynamicProxy.ProxyGenerationException:尝试使用默认属性反汇编程序复制不可继承的属性NullableContextAttribute时出错。使用IAtAttributedIsAssembler的自定义实现(作为ProxyGenerationOptions的“AttributeDisassembler”属性传递)复制此属性。
在Castle.DynamicProxy.DefaultAttributeDisassembler.Discomble(属性)
在Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.DefineCustomAttribute(属性属性,IAtAttributedIsAssembler反汇编程序)
在Castle.DynamicProxy.Generators.BaseProxyGenerator.ReplicateNonInheritableAttributes(类型targetType,类发射器发射器)
位于Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateType(字符串newName,类型[]接口)
位于Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(类型[]接口,ProxyGenerationOptions)
在Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(类型classToProxy,类型[]additionalInterfacesToProxy,ProxyGenerationOptions)
在Castle.DynamicProxy.ProxyGenerator.CreateClassProxyType(类型classToProxy,类型[]additionalInterfacesToProxy,ProxyGenerationOptions)
位于Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,类型[]additionalInterfacesToProxy,类型[]additionalInterfacesToProxy,ProxyGenerationOptions,对象[]构造函数参数,IInterceptor[]拦截器)
位于Rhino.Mocks.MockRepository.MockClass(CreateMockState-mockStateFactory,类型Type,类型[]extras,对象[]argumentsForConstructor)
位于Rhino.Mocks.MockRepository.Stub(类型,对象[]argumentsForConstructor)
在Rhino.Mocks.MockRepository.c_uu DisplayClass1`1.b_uu 0(MockRepository repo)
在Rhino.Mocks.MockRepository.CreateMockInReplay[T](Func`2 createMock)
在

这是我的棘手的解决办法。由于
NullableContextAttribute
仅用于编译器,因此不能在源代码中使用它。但是您可以在模拟程序集中找到这种类型,就像这样
Array.find(typeof(SomeOtherClass).assembly.GetTypes(),t=>t.Name==“NullableContextAttribute”)
其中SomeOtherClass是您试图模拟的对象。找到
类型
可以传递到
Castle.DynamicProxy.Generators.attributesavoidreplication.Add的对象

我重复一遍,这可能是最糟糕的解决方案,但它对我有效

        var myStub = MockRepository.GenerateStub<SomeOtherClass>();


   Castle.DynamicProxy.ProxyGenerationException : There was an error trying to replicate non-inheritable attribute NullableContextAttribute using default attribute disassembler. Use custom implementation of IAttributeDisassembler (passed as 'AttributeDisassembler' property of ProxyGenerationOptions) to replicate this attribute.
   at Castle.DynamicProxy.DefaultAttributeDisassembler.Disassemble(Attribute attribute)
   at Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.DefineCustomAttribute(Attribute attribute, IAttributeDisassembler disassembler)
   at Castle.DynamicProxy.Generators.BaseProxyGenerator.ReplicateNonInheritableAttributes(Type targetType, ClassEmitter emitter)
   at Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateType(String newName, Type[] interfaces)
   at Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(Type[] interfaces, ProxyGenerationOptions options)
   at Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
   at Castle.DynamicProxy.ProxyGenerator.CreateClassProxyType(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
   at Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, Object[] constructorArguments, IInterceptor[] interceptors)
   at Rhino.Mocks.MockRepository.MockClass(CreateMockState mockStateFactory, Type type, Type[] extras, Object[] argumentsForConstructor)
   at Rhino.Mocks.MockRepository.Stub(Type type, Object[] argumentsForConstructor)
   at Rhino.Mocks.MockRepository.<>c__DisplayClass1`1.<GenerateStub>b__0(MockRepository repo)
   at Rhino.Mocks.MockRepository.CreateMockInReplay[T](Func`2 createMock)
   at