简体   繁体   English

检查从哪个 Class 创建了 object

[英]Check from which Class the object has been created

I was searching for a common question but couldn't find any solution even after googling.我正在寻找一个常见问题,但即使在谷歌搜索后也找不到任何解决方案。 Maybe I am searching wrong?也许我搜索错了?

Is it possible to know from which class the object has been created?是否有可能知道从哪个 class 创建了 object? For Example: In Visual Basic Code:例如:在 Visual Basic 代码中:

I have a class,我有一个 class,

Public Class dummyA

End Class

I have another class,我还有一个class,

Public Class dummyMain
    Dim dmmA As New dummyA
End Class

Can I check in dummyA , if the object has been created from dummyMain?如果 object 是从 dummyMain 创建的,我可以签入dummyA吗?

Answer with c# or VB.Net would be great.用 c# 或 VB.Net 回答会很棒。 Thanks.谢谢。

Easiest way is to have an overloaded constructor and pass the owner into it.最简单的方法是拥有一个重载的构造函数并将所有者传递给它。

public class DummyA
{
    public DummyA(object owner)
    {
       var createdByDummyMain = owner is DummyMain;
    }
}

and then do然后做

public class DummyMain
{
    public DummyMain()
    {
        var dmmA = new DummyA(this);
    }
}

There is also this but it won't give you exactly what you want.还有这个,但它不会给你你想要的。 There are other proposals too that deal with StackFrame but it isn't reliable due to JIT optimizations.还有其他处理StackFrame的提案,但由于 JIT 优化,它并不可靠。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM