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

是否有可能告诉哪个文件在C#中实例化了一个类?

例如,如果我有Page1.cs和Page2.cs,myclass.cs中的构造函数可以知道哪个页面从中创建了对象吗?


九州编程
浏览 135回答 3
3回答

富国沪深

一个班级可以通过检查构造期间的堆栈跟踪来了解哪个班级实例化了它。因此,例如,如果要将其添加到类的构造函数中:var creator = new StackTrace().GetFrame(1).GetMethod().DeclaringType.FullName;...您将了解调用的代码的位置new。位置与班级名称相同。您当然可以检查声明类型的属性,以了解程序集名称,位置等。请记住,如果您链接了构造函数,则必须将堆栈框架走得更远。同样,这对于通过反序列化创建的任何对象均无效。
打开App,查看更多内容
随时随地看视频慕课网APP