我为记录方法异常编写了一个 OnMethodBoundaryAspect 属性。
我遇到了复杂方法参数的问题。
方法签名是:
测试类 m_tf = new TestClass();
m_tf.DoWorkInternal(1, new Prova1() { ProvaP1=10, ProvaP2=11 });
我能够跟踪 int 类型的第一个参数,因此我可以获得参数名称和值。
但是我怎样才能得到作为复杂对象的第二个参数的属性值呢?
提前致谢。朱塞佩。
解决。
找到解决方案。
切面方法是这样的,将目标方法参数写成json格式:
public override void OnException(MethodExecutionArgs args)
{
base.OnException(args);
Dictionary<string, object> m_args = new Dictionary<string, object>();
for (int i = 0; i < args.Arguments.Count(); i++)
{
string name = args.Method.GetParameters()[i].Name;
object obj = args.Arguments.GetArgument(i);
m_args.Add(name, obj);
}
var output = JsonConvert.SerializeObject(m_args);
:
:
}