为了账号安全,请及时绑定邮箱和手机立即绑定

C#类是否知道实例化了哪个文件?

C#类是否知道实例化了哪个文件?

C#
九州编程 2021-04-26 12:14:09
是否有可能告诉哪个文件在C#中实例化了一个类?例如,如果我有Page1.cs和Page2.cs,myclass.cs中的构造函数可以知道哪个页面从中创建了对象吗?
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

一个班级可以通过检查构造期间的堆栈跟踪来了解哪个班级实例化了它。因此,例如,如果要将其添加到类的构造函数中:

var creator = new StackTrace().GetFrame(1).GetMethod().DeclaringType.FullName;

...您将了解调用的代码的位置new。位置与班级名称相同。您当然可以检查声明类型的属性,以了解程序集名称,位置等。

请记住,如果您链接了构造函数,则必须将堆栈框架走得更远。同样,这对于通过反序列化创建的任何对象均无效。


查看完整回答
反对 回复 2021-05-08
  • 3 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信