我有一个方法,我试图使更容易广泛部署。
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>发布于 2016-03-04 18:51:45
System.Exception.StackTrace是我尝试的很好的替代品。事实上,它甚至更好。我所要做的就是:尝试{.} catch (异常e) { myfunction( e);}和: MyFunction(Exception E){ log(e.StackTrace) }
发布于 2016-03-04 15:26:13
this是一个对象,System.Reflection.MethodBase.GetCurrentMethod().DeclaringType是一种类型。如果要获取this类型的全名,请使用
this.GetType().FullName但请注意,它们并不等同。返回声明该方法的类型的时间越长。如果实际的对象是一个子类,那么您将得到子类型名称。它也不适用于static方法,而System.Reflection.MethodBase.GetCurrentMethod().DeclaringType则不起作用。
如果您真的想要声明有关方法的类型,那么
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType才是正确的方法。没有任何关键字或快捷方式可以在其位置通用地使用。
https://stackoverflow.com/questions/35799618
复制相似问题