c# - 从代码中获取 dll 引用的项目名称

标签 c# .net reflection .net-2.0 system.diagnostics

我正在用 C# 创建一个类库项目。如何从我的类库中获取将调用方法的项目的名称?

我试过反射:

System.Reflection.Assembly.GetExecutingAssembly()

GetCallingAssembly

但是没用。

最佳答案

我也在找这个。我可以从 StackFrame 得到的文件名就像@Maheep 的回答一样,但获取项目名称并不是很直接。

一个。我只是得到了一个简单的解决方案:

  1. 基于从 StackFrame 中找到的文件名(路径) , 迭代每个父文件夹。
  2. 查找带有 *.csproj (C#) 的任何文件
  3. 可选择打开 csproj 文件以确保当前文件 <Compile Include="Folder\File.cs" />包括在内
  4. csproj的文件名就是项目名

B.我通过使用预构建宏找到了替代方案 $(ProjectDir)并在此处访问代码中的结果:What's an easy way to access prebuild macros such as $(SolutionDir) and $(DevEnvDir) from code in C#?

关于c# - 从代码中获取 dll 引用的项目名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208117/

相关文章:

c# - Microsoft.Data.SqlClient - 登录前握手错误

.net - Entity Framework 6.1.3 中的 Citext 数据类型

c# - Reflection.Emit 错误操作可能会破坏运行时的稳定性

c# - Type.GetType(string typeName) 返回 null

c# - 将通用列表转换为特定类型

java - 从 Java 中的通用静态方法获取类名

c# - 如何使用asp.net调用javascript函数?

c# - 如何在 UserControl (.ascx) 中调用 ASP.NET WebMethod

c# - 同一项目中的自定义控件和应用程序

.net - 在 RavenDB 中存储对象的对象要求(限制)是什么