说我有一个方法:有没有办法获得传递给方法的参数数组?
public void SomeMethod(String p1, String p2, int p3)
{
#if DEBUG
object[] args = GetArguments();
LogParamaters(args);
#endif
// Do Normal stuff in the method
}
有没有一种方法来检索传递到方法的参数数组,这样他们可以记录?
我有大量的方法,并希望避免手动名传递参数记录器,因为人为错误将不可避免地在蠕动
我猜这将涉及某种形式的反思 - 这没问题,因为它只会用于调试目的。
更新
多一点信息:
我不能改变的someMethod的方法签名,因为它是暴露一个WebMethod和具有复制遗留系统被仿冒。
遗留系统已经记录了传入的参数。要开始使用新的实现将包装遗留系统,所以我期待记录参数进入C#版本,以便我可以验证正确的参数以正确的顺序传入。
我只是在寻找记录参数值和顺序,而不是他们的名字。
有关参数的信息存储在日志中?类型,名称,价值? – devnull 2010-07-20 09:36:55
这意味着你真的在讨论_arguments_,而不是_parameters_。 [(例如,参见这里的关于差异的解释。)](http://msdn.microsoft.com/en-us/library/9kewt1b3%28VS.80%29.aspx) – stakx 2010-07-20 10:00:31
@stax,是的区别是有意义的。我正在寻找传递给方法的参数值。 – 2010-07-20 10:05:35