Update of /cvsroot/mockobjects/nmock/src/NMock/Dynamic
In directory usw-pr-cvs1:/tmp/cvs-serv5221/src/NMock/Dynamic
Modified Files:
ClassGenerator.cs
Log Message:
Bytecode now emitted for property setters/getters
Index: ClassGenerator.cs
===================================================================
RCS file: /cvsroot/mockobjects/nmock/src/NMock/Dynamic/ClassGenerator.cs,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ClassGenerator.cs 6 Oct 2002 20:49:08 -0000 1.1.1.1
+++ ClassGenerator.cs 6 Oct 2002 23:11:39 -0000 1.2
@@ -36,19 +36,16 @@
Type proxyType = typeBuilder.CreateType();
GeneratedBase result = (GeneratedBase)Activator.CreateInstance(proxyType);
result.UnderlyingMock = mock;
- assemblyBuilder.Save("x.dll");
return result;
}
- AssemblyBuilder assemblyBuilder;
-
private TypeBuilder getTypeBuilder(string name, Type implementsInterface)
{
AppDomain appDomain = AppDomain.CurrentDomain;
AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "DynamicMockAssembly";
- /*AssemblyBuilder*/ assemblyBuilder = appDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave, "c:\\temp\\");
- ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("MockModule", "t.dll");
+ AssemblyBuilder assemblyBuilder = appDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
+ ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("MockModule");
return moduleBuilder.DefineType(name, TypeAttributes.Public, typeof(GeneratedBase),
new Type[]{implementsInterface});
}
@@ -72,8 +69,14 @@
il.DeclareLocal(param.ParameterType);
}
+ string methodName = m.Name;
+ if (methodName.StartsWith("get_") || methodName.StartsWith("set_"))
+ {
+ methodName = methodName.Substring(4);
+ }
+
il.Emit(OpCodes.Ldarg_0);
- il.Emit(OpCodes.Ldstr, m.Name);
+ il.Emit(OpCodes.Ldstr, methodName);
il.Emit(OpCodes.Ldc_I4_S, paramTypes.Length);
il.Emit(OpCodes.Newarr, typeof(object));
|