我想在 .NET Compact Framework 中执行以下操作。我正在寻找调用方法类型。
http://www.csharp-examples.net/reflection-calling-method-name/
.NET Compact Framework 不支持 StackFrame 类。此外,GetCurrentMethod() 在 MethodBase 类中不可用。
我想在 .NET Compact Framework 中执行以下操作。我正在寻找调用方法类型。
http://www.csharp-examples.net/reflection-calling-method-name/
.NET Compact Framework 不支持 StackFrame 类。此外,GetCurrentMethod() 在 MethodBase 类中不可用。
尝试抛出异常然后检查它的 StackTrace 属性。
try
{
throw new Exception();
}
catch(Exception ex)
{
Console.Write(ex.StackTrace);
}
它会给出类似的东西
“在 NumericTextBoxControl.NumericalInput..ctor()\r\nat Custom_Numeric_Input.frmTestApplication.InitializeComponent()\r\nat Custom_Numeric_Input.frmTestApplication..ctor()\r\nat Custom_Numeric_Input.Program.Main()\r\n”
您可以对其进行解析、拆分和使用反射。
正如您所发现的,Compact Framework 就是这样 - 紧凑。并非完整框架中的所有内容都可用,这就是一个例子。除非您在异常处理程序中并且可以查看那里的调用堆栈,否则根本无法确定调用方法(即使这样获取方法名称也并不像人们希望的那样简单)。