繁体   English   中英

如何在C#中获取反映的程序集的异常StackTrace

[英]How to get exception StackTrace for reflected assemblies in c#

我有一个简单的c#.net Windows服务,该服务在运行时加载程序集并在其中执行方法。 如果有错误,我会向我发送一封包含堆栈跟踪的电子邮件。 问题是堆栈跟踪仅给我程序的堆栈,而不给反射的程序集。 有没有办法做到这一点。 这是代码

try
{
  var filename = "abc.dll";
  var assemblyToLoad = Assembly.LoadFile(filename);
  var args = new object[]
                        {
                         "FirstName","LastName"
                        };

  var classToLoad = assemblyToLoad.CreateInstance("abc.myclass", false,
                BindingFlags.CreateInstance, null, args, null, null);

  var value = classToLoad.GetType().GetMethod("Run").Invoke(classToLoad, null);

}

catch(Exception ex)
{

  SendMail(ex.StackTrace);

}

您似乎正在尝试重新发明轮子,为什么当您可以实现一个众所周知的强大框架时,使用这种基本的日志记录方式?

我可以建议您看一下Elmah,它是我使用过的最简单的日志记录框架之一。

感谢dartonw。 他的建议奏效了。 我觉得我好笨。 我只需要将反射程序集的.pdb文件拖放到bin文件夹中,然后查看innerException的堆栈跟踪,即可获取反射程序集的堆栈跟踪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM