【发布时间】:2013-02-01 19:17:56
【问题描述】:
在模拟以下界面时,我遇到了 Rhino Mocks 3.6.0 和 3.6.1 的异常:
public interface ic
{
IComponentConfig<TImpl> Bob<TSvc, TImpl>()
where TImpl : TSvc;
}
我可以确认,当删除通用“where”关联时,它会正确模拟。
堆栈跟踪牢牢地指向 Castle Dynamic Proxy:
System.BadImageFormatException 未被用户代码处理 H结果=-2147024885 Message=试图加载格式不正确的程序。 (来自 HRESULT 的异常:0x8007000B) 源=mscorlib 堆栈跟踪: 在 System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule 模块,Int32 tk,ObjectHandleOnStack 类型) 在 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() 在 System.Reflection.Emit.TypeBuilder.CreateType() 在 Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType() 在 Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType() 在 Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(类型 proxyTargetType,Type[] 接口,ProxyGenerationOptions 选项) 在 Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(类型 interfaceToProxy,Type[] additionalInterfacesToProxy,ProxyGenerationOptions 选项) 在 Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithoutTarget(类型 interfaceToProxy,Type[] additionalInterfacesToProxy,ProxyGenerationOptions 选项) 在 Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(类型 interfaceToProxy,Type[] additionalInterfacesToProxy,ProxyGenerationOptions 选项,IInterceptor[] 拦截器) 在 Rhino.Mocks.MockRepository.MockInterface(CreateMockState mockStateFactory, Type type, Type[] extras) 在 Rhino.Mocks.MockRepository.CreateMockObject(类型类型,CreateMockState 工厂,Type[] extras,Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.DynamicMock[T](Object[] argumentsForConstructor) 在 Rhino.Mocks.MockRepository.c__DisplayClass7
1.<GenerateMock>b__6(MockRepository r) at Rhino.Mocks.MockRepository.CreateMockInReplay[T](Func2 createMock) 在 Rhino.Mocks.MockRepository.GenerateMock[T](Object[] argumentsForConstructor) 在 c:\git\MyFork\Workspace\Db.Montage.Common.Tests\Config\ConfigTestBase.cs:line 27 中的 XXXXX.ConfigTestBase.SetUp() 内部异常:
【问题讨论】:
标签: mocking rhino-mocks castle-dynamicproxy