2011-04-12 46 views
0

我有一個web服務'mywebservice'和一個web方法'mywebmethod'定義在其中。 這個web方法調用另一個類中定義的函數'callme()'。 我想獲取調用此函數的服務名稱以及方法名稱。我想在'callme()'函數中使用它。如何獲得哪個web服務調用方法

- 'mywebservice.asmx.cs'

[WebMethod] 
public void mywebmethod 
{ 
    callme(); 
} 

- '的Class1.cs'

public void callme() 
{ 
    // --- I want service name(mywebservice) & methodname(mywebmethod) here. 
} 
+0

如果它是你的class1.cs實現什麼阻止你從每個webmethod調用它傳遞這些參數,顯然這不是最好的方法,但根據這個問題的細節,這看起來像最明顯的。 '提供更多的細節和你爲了更好的反應而嘗試了什麼' – 2011-04-12 04:51:37

+0

我不想從webmethod傳遞參數。我只想獲取調用此函數的方法和服務名稱。 – smartDev 2011-04-12 05:14:55

+0

爲什麼?在這兩種情況下?爲什麼你不想傳遞參數?爲什麼你需要在調用方法中的服務名稱和方法?這些原因是爲了解真正的問題。 – 2011-04-12 05:26:12

回答

1

一種可能的方式可以是使用StackTrace類(見上手例如節)返回調用堆棧以獲取類型名稱&方法名稱 - 這將爲您提供實現該服務的類/方法的名稱。

請注意,堆棧跟蹤結構是一項昂貴的操作 - 因此,我建議將必要的信息作爲參數傳遞給方法。此外,如果您可以說明您爲什麼需要此信息(服務&方法名稱),則可能會得到更好的答案來解決您的實際問題。