이되어 어떤 메소드를 호출 한 클래스의 인스턴스를 가져 오는 방법이 있습니까?메소드 호출자가 C#
3
A
답변
7
호출 스택을 검사하여 호출하는 메서드의 이름을 으로 가져올 수 있습니다. 클래스 인스턴스를 얻으려면은 다른 이야기이며 쉽게 실현되지는 않습니다 (가능하다해도 실제로 시도한 적이 없습니다). 예를 들어 static
메서드에서 메서드를 호출 할 가능성을 고려해야합니다.이 경우 찾을 수있는 클래스 인스턴스가 없습니다.
어느 쪽이든, 이것은 일반적으로 좋은 일이 아닙니다. 메소드가 호출하는 클래스 인스턴스에 액세스해야하는 경우 메소드의 매개 변수로 추가하십시오.
1
StackTrace.GetFrame 메서드를 확인할 수 있습니다. :)
0
글쎄, 당신이 방법에 있다면, 당신은 클래스의 유형을 얻으려면이 줄을 사용할 수 있습니다. 하지만 인스턴스을 요청한 이후로 실제로 원하는 것인지 확실하지 않습니다.
Type yourclass = MethodBase.GetCurrentMethod().DeclaringType;
2
아니요. 스택에 대한 정보를 찾을 수는 있지만 관리되지 않는 코드 경계 (Windows 메시지, 콜백, COM-interop 등) 또는 간단한 정적 메서드와 같은 인스턴스가없는 경우가 있습니다.
대체 솔루션을 찾을 수 있도록 처음부터 무엇을 달성해야하는지 설명해야합니다. 가능하면
0
, 당신은 예를 들어 WPF 방법 사이에 공통적 인 같은
object sender
매개 변수를 추가 시도 할 수 있습니다.
관련 문제
- 1. C/Glib 호출자가 해방해야하는 문자열
- 2. C++ 피 호출자가 발신자를 삭제하면 어떻게됩니까?
- 3. 함수 호출자가 처리해야하는 경고
- 4. 호출자가 호출을 거부했습니다. PowerPoint 자동화
- 5. Objective-C : 호출자가 수신자가 수신 한 주소와 다른 주소?
- 6. C++ 인터페이스의 개인 메소드?
- 7. 메소드 템플릿 만들기 - C++
- 8. C++ 메소드 선언 질문
- 9. C++ 메소드 변수 선언
- 10. 함수 또는 호출자가 입력 유효성 검사를 담당해야합니까?
- 11. C 메소드/클래스를 C# 프로젝트로 가져 오기
- 12. Eclipse의 C/C++ 메소드 매개 변수 힌트
- 13. 포인터가 메소드 params - objective-c
- 14. Objective-C 메소드 구현 뉘앙스
- 15. C#에서 웹 메소드 호출
- 16. C++ 싱글 대 정적 메소드
- 17. Objective-C 클래스 작성 메소드
- 18. C# BinaryReader의 Java DataInputStream 메소드
- 19. C# 4 인터셉트 메소드 호출
- 20. 목표 C 메소드 서명 문제
- 21. () 메소드
- 22. Java2C# 변환 : C#의 인터페이스에있는 공용 메소드
- 23. Objective-C : 서브 클래스의 호출 클래스 메소드
- 24. 메소드 종속성을 사용하여 C# 파생 클래스 리펙토링
- 25. C#의 메소드 내에 enum을 정의 하시겠습니까?
- 26. Python C 확장 : 문서 서명을위한 메소드 서명?
- 27. C++의 특정 간격 속도로 메소드 호출하기
- 28. fake/mock 비 -virtual C++ 메소드
- 29. '= x'를 C++의 메소드 선언 다음에 추가했습니다.
- 30. C# 입력에 따라 메소드 호출을 지정 하시겠습니까?