protected override MethodDefinition ImplementGuardMethod(GuardMethod metadata)
            {
                var method = metadata.Template;

                if (metadata.IsTemplate)
                {
                    method.Attributes = MethodAttributes.Public | MethodAttributes.HideBySig;
                    SetGuardMethodBody(method, metadata.LoggerTemplate.Level, metadata.LoggerTemplate.Keywords);
                }

                return method;
            }
            protected override MethodDefinition ImplementGuardMethod(GuardMethod metadata)
            {
                var oldMethod = metadata.Template;
                var newMethod = new MethodDefinition(oldMethod.Name, MethodAttributes.Public, module.TypeSystem.Boolean);

                oldMethod.CopyAttrsTo(newMethod);
                target.Methods.Add(newMethod);

                SetGuardMethodBody(newMethod, metadata.LoggerTemplate.Level, metadata.LoggerTemplate.Keywords);

                return newMethod;
            }