Ejemplo n.º 1
0
        public void Apply(ModuleDefinition module)
        {
            module.EachTypes((type) =>
            {
                foreach (var method in type.Methods)
                {
                    WvPatterns.Replace.Apply(
                        method,
                        (inst) =>
                    {
                        if (inst.OpCode == OpCodes.Ldstr)
                        {
                            return(true);
                        }
                        return(false);
                    },
                        (ilgen, cursor) =>
                    {
                        var str = (string)cursor.current.Operand;

                        //var line = offset.GetCodeLine(method);

                        if (Interpolate(method, ilgen, cursor.clone))
                        {
                            cursor.Remove();
                        }
                        //ilgen.Replace(offset, ilgen.Create(OpCodes.Ldc_I4, line));
                    });
                }
            });
        }