0
我有一個類Foo
與方法SomeMethod()
。在SomeMethod()
,我運行:Bar bar = new Bar(); bar.BBQ();
。在BBQ()
之內,我調用私有方法Name(n)
,它引發了一個異常,並顯示消息new StackTrace().GetFrame(n).GetMethod().Name
。堆棧軌跡skipps的一種方法?
我的意圖是將1傳遞給Name(n),以便它返回值「BBQ」。但是,Name(0)返回「Name」,Name(1)返回「SomeMethod」。在拋出異常導致的堆棧跟蹤中,它也會像SomeMethod直接調用Name一樣讀取(不提及BBQ)。
有沒有辦法解決這個問題?有沒有人有任何想法可能導致這個錯誤?有沒有更好的方法來完成從名稱獲得價值「燒烤」?
[TestClass]
public class Foo
{
public Foo()
{
}
[TestMethod]
public void SomeMethod()
{
Bar bar = new Bar();
bar.BBQ();
}
}
public class Bar
{
public Bar()
{
}
public void BBQ()
{
Name(1);
}
private void Name(int n)
{
throw new Exception(new StackTrace().GetFrame(n).GetMethod().Name);
}
}
你可以發佈你的代碼嗎? –
請發佈您的代碼。您的描述可能與您的代碼中實際發生的情況有所不同。 –
爲什麼你會提供你的代碼的描述,而不是隻發佈它? –