我有一种方法正在尝试简化广泛部署的过程。
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/