Speaking off the top of my mind, have you tried doing the same without rhino mocks? Maybe dynamic proxy doesn't support generating proxies for proxies.
2009/9/21, Gian Maria Ricci <[email protected]>: > Hi to everyone. > > I'm facing a little problem with CastleDynamicProxy and Rhino.Mocks. Here is > how to reproduce It: > > Assume that ITest and ITEst2 are two simple interfaces. > > This code works > > TestInterceptor interceptor = new TestInterceptor() { TestValue = 42 }; > > ITest t = new AuxClasses.Test(); > > ITest2 t2 = new Test2(); > > ProxyGenerator gen = new ProxyGenerator(); > > gen.CreateInterfaceProxyWithTarget(typeof(ITest), t, interceptor); > > gen.CreateInterfaceProxyWithTarget(typeof(ITest2), t2, interceptor); > > > > I'm creating two concrete classes that implement two interfaces, then I use > dynamicproxy2 to add an interceptor. > > The bug is this one: If the object are mocks it does not works. The > following code throws an exception. > > TestInterceptor interceptor = new TestInterceptor() { TestValue = 42 }; > > ITest t = MockRepository.GenerateStub<ITest>(); > > ITest2 t2 = MockRepository.GenerateStub<ITest2>(); > > ProxyGenerator gen = new ProxyGenerator(); > > gen.CreateInterfaceProxyWithTarget(typeof(ITest), t, interceptor); > > gen.CreateInterfaceProxyWithTarget(typeof(ITest2), t2, interceptor); > > IT throws exception in the last line, here is the exception. > > System.Reflection.TargetInvocationException : Exception has been thrown by > the target of an invocation. > > ----> System.TypeInitializationException : The type initializer for > 'Castle.Proxies.ITest2Proxyd4b9bc1d7b074f0e9c21463219ccd322' threw an > exception. > > ----> System.TypeLoadException : Could not load type > 'ITest2Proxye5fb0daa7f68424da380ca57b9718ffd' from assembly > 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, > PublicKeyToken=a621a9e7e5c32e69'. > > at System.RuntimeFieldHandle.SetValue(Object obj, Object value, > RuntimeTypeHandle fieldType, FieldAttributes fieldAttr, RuntimeTypeHandle > declaringType, Boolean& domainInitialized) > > at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object > value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean > doVisibilityCheck, Boolean doCheckConsistency) > > at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, > BindingFlags invokeAttr, Binder binder, CultureInfo culture) > > at System.Reflection.FieldInfo.SetValue(Object obj, Object value) > > at > Castle.DynamicProxy.Generators.BaseProxyGenerator.InitializeStaticFields(Type > builtType) > > at > Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateType(String > typeName, Type proxyTargetType, Type[] interfaces) > > at > Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(Type > proxyTargetType, Type[] interfaces, ProxyGenerationOptions options) > > at > Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithTarget(Type > interfaceToProxy, Type[] additionalInterfacesToProxy, Type targetType, > ProxyGenerationOptions options) > > at > Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTarget(Type > interfaceToProxy, Type[] additionalInterfacesToProxy, Type targetType, > ProxyGenerationOptions options) > > at > Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(Type > interfaceToProxy, Type[] additionalInterfacesToProxy, Object target, > ProxyGenerationOptions options, IInterceptor[] interceptors) > > at > Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(Type > interfaceToProxy, Object target, ProxyGenerationOptions options, > IInterceptor[] interceptors) > > at > Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(Type > interfaceToProxy, Object target, IInterceptor[] interceptors) > > > Alk. > > > > -- Inviato dal mio dispositivo mobile --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
