internal void LogArguments(object[] args, string prefix) { if (args == null) { return; } else { foreach (var arg in args) { if (arg == null) { TestLog.Write($"{prefix}:Arguments:null"); } else { TestLog.Write($"{prefix}:Arguments:{arg.GetType().Name}:{arg.ToString()}"); } } } }
public void Before( [Advice.Argument(Advice.Argument.Source.Arguments)] object[] args, //[Advice.Argument(Advice.Argument.Source.Attributes)] Attribute[] attrs, [Advice.Argument(Advice.Argument.Source.Instance)] object _this, [Advice.Argument(Advice.Argument.Source.Method)] MethodBase method, [Advice.Argument(Advice.Argument.Source.Name)] string name, [Advice.Argument(Advice.Argument.Source.ReturnType)] Type retType, [Advice.Argument(Advice.Argument.Source.ReturnValue)] object retVal, [Advice.Argument(Advice.Argument.Source.Target)] Func <object[], object> target, [Advice.Argument(Advice.Argument.Source.Type)] Type hostType ) { base.LogArguments(args, BeforeExecuted); //base.LogAttributes(args, BeforeExecuted); base.LogInstance(_this, BeforeExecuted); base.LogMethod(method, BeforeExecuted); base.LogName(name, BeforeExecuted); base.LogReturnType(retType, BeforeExecuted); base.LogReturnValue(retVal, BeforeExecuted); base.LogTarget(target, BeforeExecuted); base.LogType(hostType, BeforeExecuted); TestLog.Write(BeforeExecuted); }