检索当前使用另一个程序集的程序集



我正在尝试获取"当前使用者"程序集的程序集,但我不知道如何做到这一点。当它在表单应用程序中引用时,我能够做到这一点,但在 Web 服务中使用时

它不起作用。

为了从WinForm获取它,我使用了:Assembly.GetCallingAssembly()它很好地返回了我的CallingApp的dll,然后可以访问他的程序集。但是当它用于 Web 服务时,它会返回当前 DLL 本身,而不是 Web 服务的 DLL。

有人知道我该如何解决这个问题吗?

编辑 #1

更准确地说:MyWebService reference MyDLL。在MyDLL中,我想获取MyWebService或任何其他使用MyDLL的项目程序集。这就是为什么我使用Assembly.GetCallingAssembly()非常适合 Win Form 应用程序的原因......但不是使用 Web 服务。

我可以想象两种不同的方法:

  • Assembly.GetEntryAssembly()
  • System.Diagnostics.StackTrace

通过 StackTrace,您可能需要遍历每个帧才能确定程序集。

此线程可能会给您一些提示:

C# - 获取调用方法的程序集?

最新更新