2012-02-29 5 views
0

가능한 복제를 호출하는 클래스 이름을 얻는 방법 :
Retrieving the calling method name from within a method (C#)다른 클래스의 정적 funcaion에게

나는 클래스가

A가있는 방법이 Func1라는이 말을; 이 함수는 정적입니다. 이제 다른 클래스 B 말씀이 있습니다 사용 CA.Func1

어떻게 호출하는 기능을 포함하는 클래스의 이름을 얻을 수 있나요?

public class A 
{ 
    public static void Func1() 
    { 
    // who called me? 
    } 
} 

public class B 
{ 
    public void CallFunc() 
    { 
     A.Func1(); 
    } 
} 

public class C 
{ 
    public void AlsoCallFunc() 
    { 
     A.Func1(); 
    } 
} 
+0

질문을 명확히하고 몇 가지 코드를 게시하면 도와 드리겠습니다 .. – abhilash

+2

참조 : http://stackoverflow.com/questions/615940/retrieving-the-calling-method-name-from -within-a-method-c - 그러나 나는 강력히 제안했다. 이것에 대한 필요성; 그런 기술은 기껏해야 취성이다 **. 사실상 다른 디자인이 바람직합니다. –

+0

실제로, 나의 senario는, 나의 종류에서 사건이있다,이 사건에서 나가 부를 필요가있는 부르는 winform thats에 근거를 둔 약간 계산이있다. – Abhishek

답변

0

의 출력 작업 : 그것은 당신의 특정한 경우에서 작동하는 경우 는하지만 당신은 확인해야 전화를 걸고 이벤트 및 발신자를 사용하십시오.

2

즉 정보의 종류를 acees하기 위해 StackTrace 클래스를 사용할 수 있습니다.

메서드 이름을 호출하려면이 함수를 사용하는 경우가 있습니다. 당신이 양식 일을하고 어떤 형태 알고 싶어해야하는 경우

private static string GetCallingMethodName() 
{   
    const int iCallDeepness = 2; 
    System.Diagnostics.StackTrace stack = new System.Diagnostics.StackTrace(false); 
    System.Diagnostics.StackFrame sframe = stack.GetFrame(iCallDeepness); 
    return sframe.GetMethod().Name; 
} 
관련 문제