C#反射树

Mik*_*ike 5 c# reflection

我试图找到类似于Visual Studio内置的树视图,它允许你遍历一个类.是否有一个基本的库/类基本上包含一个反射数据的树,它遍历一个类及其子类?我想要代码,我对单独的应用程序不感兴趣.

我认为用反射实现它并不困难,但我希望其他人已经做过了.

Ste*_*cya 2

如果您只想迭代嵌套类,这里是一个示例

    public Form1()
    {
        InitializeComponent();

        Assembly assembly = Assembly.GetAssembly(typeof (DateTime));
        foreach (var exportedType in assembly.GetExportedTypes())
        {
            var parentNode = treeView1.Nodes.Add(exportedType.Name);
            AddNodes(exportedType, parentNode);
        }
    }

    private void AddNodes(Type type,TreeNode node)
    {
        foreach (var nestedType in type.GetNestedTypes())
        {
            var nestedNode = node.Nodes.Add(nestedType.Name);
            AddNodes(nestedType, nestedNode);
        }
    }
Run Code Online (Sandbox Code Playgroud)

也许您还需要一些有关方法、属性等的信息,在这种情况下您可以使用

    type.GetProperties();
    type.GetMethods();
    type.GetMembers();
    type.GetEvents();
    type.GetInterfaces();
Run Code Online (Sandbox Code Playgroud)