Web Services c#从调用者程序集将变量设置到引用的DLL中

bzzcjhmw  于 2023-10-24  发布在  C#
关注(0)|答案(1)|浏览(125)

我有一个DLL共享到2个项目(到同一个解决方案),这个DLL是一个库的功能使用从其他2个项目,第一个是Windows服务(exe文件),第二个是一个Web服务(DLL文件)
现在,更具体地说,函数需要知道谁是调用者以定制路径
有一种方法可以在调用方的项目中设置一个变量来指示被调用的DLL?
我尝试使用Assembly.GetCallingAssembly().FullName,但如果从EXE和DLL调用它,它的工作方式会有所不同,而且无论如何看起来都不是一种干净的方式
Thanks in advance

osh3o9ms

osh3o9ms1#

我解决了一个“技巧”:),我必须感谢@yacc让我正确的路径.

public static string GetCallingMethod()
    {
         string retval = "";

         StackTrace st = new StackTrace();
         StackFrame[] frames = st.GetFrames();
         foreach (StackFrame sFrame in frames)
         {
            if (sFrame.GetMethod().ReflectedType.FullName.StartsWith("MyAssembly"))
            {
                retval = sFrame.GetMethod().ReflectedType.FullName;
            }
         }

         return retval;
    }
  • retval* 将包含程序集调用者的全名,在我的项目中,这两个名称都以“MyAssembly”开头。

谢谢大家的帮助

相关问题