Example #1
0
        public DynamicMethodBuilder(DynamicAssemblyBuilder outer)
        {
            this.outer = outer;

            locals  = new Dictionary <VariableDefinition, LocalBuilder>();
            actions = new Dictionary <Instruction, Block>();
            labels  = new Dictionary <Instruction, Label>();
        }
        public DynamicMethodBuilder(DynamicAssemblyBuilder outer)
        {
            this.outer = outer;

            locals = new Dictionary<VariableDefinition, LocalBuilder>();
            actions = new Dictionary<Instruction, Block>();
            labels = new Dictionary<Instruction, Label>();
        }
        /// <inheritdoc />
        public Assembly InstrumentAndLoad(string assemblyPath, string instrumentedAssemblySavePath)
        {
            if (assemblyPath == null)
                throw new ArgumentNullException(@"assemblyPath");

            AssemblyDefinition assemblyDefinition = AssemblyFactory.GetAssembly(assemblyPath);

            DynamicAssemblyBuilder builder = new DynamicAssemblyBuilder(assemblyDefinition);

            DynamicAssembly dynamicAssembly = builder.Build(instrumentedAssemblySavePath);

            if (instrumentedAssemblySavePath != null)
                dynamicAssembly.Save();

            return dynamicAssembly.Builder;
        }
        /// <inheritdoc />
        public Assembly InstrumentAndLoad(string assemblyPath, string instrumentedAssemblySavePath)
        {
            if (assemblyPath == null)
            {
                throw new ArgumentNullException(@"assemblyPath");
            }

            AssemblyDefinition assemblyDefinition = AssemblyFactory.GetAssembly(assemblyPath);

            DynamicAssemblyBuilder builder = new DynamicAssemblyBuilder(assemblyDefinition);

            DynamicAssembly dynamicAssembly = builder.Build(instrumentedAssemblySavePath);

            if (instrumentedAssemblySavePath != null)
            {
                dynamicAssembly.Save();
            }

            return(dynamicAssembly.Builder);
        }