我有一种方法正在尝试简化广泛部署的过程。

NHibernateISession.log4netLogFileEntry("DEBUG", "hello",
    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName);


我想将System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName简化为简单的this

但是,如何从FullName获取this.FullName

只是为了防止它对您有帮助:
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName给您

<namespace>.<namespace>.<namespace>.<class>

最佳答案

this是对象-System.Reflection.MethodBase.GetCurrentMethod().DeclaringType是类型。如果要获取this类型的全名,请使用

this.GetType().FullName


但请注意,它们并不等效。较长的一个返回声明该方法的类型。如果实际对象是子类,则将获得子类型名称。它也不适用于static方法,而System.Reflection.MethodBase.GetCurrentMethod().DeclaringType可以。

如果您实际上想要声明相关方法的类型,则

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType


是正确的方法。没有关键字或快捷方式可以在一般位置使用。

关于c# - system.reflection替代“this”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35799618/

10-17 02:58