我正在尝试获取"当前使用者"程序集的程序集,但我不知道如何做到这一点。当它在表单应用程序中引用时,我能够做到这一点,但在 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# - 获取调用方法的程序集?