Cor*_*urn 7 .net c# reflection
我有一个应用程序,但我不知道如何做到这一点.假设我在一个不带参数的DLL文件中有一些可公开访问的方法.这种方法有可能知道它叫什么吗?它可以告诉它是从静态或实例化的上下文调用的吗?从特定班级?一个方法可以知道它是如何被调用的?
您可以从堆栈跟踪中获取调用者信息:
StackTrace stackTrace = new StackTrace();
MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
Run Code Online (Sandbox Code Playgroud)
这种方法有可能知道它叫什么:
string typeName = methodBase.DeclaringType.Name;
string methodName = methodBase.Name;
Run Code Online (Sandbox Code Playgroud)
它可以判断它是从静态或实例化的上下文中调用的:
bool isStaticCall = methodBase.IsStatic
Run Code Online (Sandbox Code Playgroud)
从特定的类:
bool isGeneric = methodBase.DeclaringType.IsGenericType;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |