c# - 获取调用方法的命名空间和程序集

标签 c# .net

System.Reflection 中是否有技巧来获取调用另一个方法的方法的命名空间?我目前拥有的是:

var stackTrace = new System.Diagnostics.StackTrace();
MethodBase method = stackTrace.GetFrame(1).GetMethod();
string namespace = method.DeclaringType.Namespace;
Assembly assembly = method.DeclaringType.Assembly;

最佳答案

不,如果调用方法是内联的,即使你的技巧在生产中也不会起作用 - 即太小以至于编译器使其与下一个方法保持一致。

没有可靠的方法来获取此信息。

http://www.mehdi-khalili.com/that-tricky-stacktrace

关于c# - 获取调用方法的命名空间和程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090216/

相关文章:

javascript - 用于上传调整大小的图像的服务器代码

c# - 枚举多次的 .Net 方法应该接受哪种类型的集合作为参数?

.net - Silverlight 4.0 和 WCF 客户端代理 - 如何创建和关闭实例

c# - Visual Studio 在运行程序后向 DataGridView 添加列

c# - 在字符串 c# 中查找标记值

.net - 单独项目中的 nHibernate 域模型和映射文件

c# - 不使用 keystore 的客户端证书

c# - UCMA 应用程序中的 ApplicationEndPoint

c# - LINQ2SQL 事务性能

c# - LINQ Min() 和 Max() 优化