就像标题所说:反射可以为您提供当前正在执行的方法的名称.
由于海森堡的问题,我倾向于不猜.如何在不改变当前方法的情况下调用一种方法来告诉您当前的方法?但是我希望有人可以在那里证明我的错.
更新:
最终结果
我了解了MethodBase.GetCurrentMethod().我还了解到,我不仅可以创建堆栈跟踪,而且如果需要,我只能创建我需要的确切帧.
要在属性中使用它,只需使用.Substring(4)删除'set_'或'get_'.
我正在寻找一种算法,可以在该方法中获取调用该方法的对象.
例如:
public class Class1 {
public void Method () {
//the question
object a = ...;//the object that called the method (in this case object1)
//other instructions
}
}
public class Class2 {
public Class2 () {
Class1 myClass1 = new Class1();
myClass1.Method();
}
public static void Main () {
Class2 object1 = new Class2();
//...
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我想在.NET中使用反射来访问调用我的方法的对象.我认为以某种方式可以查看堆栈跟踪.我知道由于各种原因它并不安全,但我只需要抓取并编目一些属性值.
我该怎么做呢?
更新:我是个白痴,我忘了说这是在C#
是否有自动this
作为参数传递给函数的选项?例如,您可以使用[CallerMemberName]
自动传递string
名称.我正在寻找确切的选择this
.
例:
void PassMeThis([AutomaticThisParam] object source);
Run Code Online (Sandbox Code Playgroud)
和用法:
public class SomeClass{
void SomeMethod(){
PassMeThis(); // instead of PassMeThis(this)
}
}
Run Code Online (Sandbox Code Playgroud)