public DictionaryIlSandbox() { _assemblyBuilder = new AssemblyBuilder(true); _classBuilder = _assemblyBuilder.DefineClass("SandboxClass", typeof(object), Type.EmptyTypes); _methodBuilder = _classBuilder.DefineMethod("Execute", typeof(void), new [] {typeof(IReadVisitor), typeof(Fakes.ValueDictionary)}); _classBuilder.Seal(); }
public DynamicTravellerBuilder(DynamicTravellerContext dtContext, ClassBuilder classBuilder, SerializableTypeProvider typeProvider, Type type) { _dtContext = dtContext; _classBuilder = classBuilder; _typeProvider = typeProvider; _type = type; _constructorBuilder = _classBuilder.DefineConstructor(typeof(IVisitArgsFactory)); _constructorBuilder.IL.Var.Load(_constructorBuilder.IL.Var.This()); _constructorBuilder.IL.CallBaseConstructor(typeof(object).GetConstructor(new Type[] { })); //_constructorBuilder.IL.Return(); _travelWriteMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IWriteVisitor), _type }); _travelReadMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IReadVisitor), _type }); var factory = new VisitArgsFactory(typeProvider, type); _dynamicTraveller = new DynamicTraveller(_classBuilder.Type, factory, _constructorBuilder.Reference, _travelWriteMethod.Method, _travelReadMethod.Method, dtContext.Members); }