如果我是祖先方法,如何找到后代类的名称?

时间:2012-07-26 19:02:06

标签: c# .net reflection

我们记录我们的进程以进行调试,并使用反射来获取日志记录的方法名称。目前,我使用System.Reflection.MethodInfo参数调用logging方法,并在logging方法中解析该参数以使用Method.DeclaringType.Name来获取方法所在类的名称(以及Method.Name ,目前不是问题)。我从中获得的是祖先名称,我想要后代(即使使用的方法没有被覆盖并且直接从祖先运行)。这可能吗?我仔细研究了反射信息,但没有在任何地方找到后代名称。

我不关心Reflection的性能问题,如果有必要,我愿意在记录器方法中添加额外的参数来获取我需要的信息。

谢谢!

1 个答案:

答案 0 :(得分:4)

不,你不会从MethodInfo获得。您应该传入this,此时日志记录代码可以调用GetType()来查找对象的实际类型。