c#从chlid实例中获取父级

use*_*732 1 c# reflection types class instance

我尝试获取实例的父类型.我能怎么做 ?

示例:

public class a
{
     public b { get; set; }
}

public class b
{

}


var a = new a();
a.b = new b();

var parentType = a.b.??GetParentInstanceType()??
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 6

你不能.

您需要手动向子项添加属性以跟踪父项:

这是一种方式:

public class A
{
    public B<A> Child { get; set; }
}

public class B<T>
{
    public T Parent { get; set; }
}

A a = new A();
a.Child = new B<A>();
a.Child.Parent = a;

Type parentType = a.Child.Parent.GetType();
Run Code Online (Sandbox Code Playgroud)

当然,这里的问题是没有什么可以阻止你忘记设置Parent或设置错误Parent.