c#构造函数通过反射获取“基础”部分

时间:2021-07-29 15:07:25

标签: c# .net reflection constructor

我目前正在尝试解析一些随机 dll 的公共成员,我被困在使用反射获取构造函数的基本部分

@NotEmpty

从 Type 中我知道如何获取构造函数和参数,而不是调用父类构造函数 ': base(0.0f, 0.0f, 0.0f, 0.0f, color1, color2)'

public class MyClass: MySuperClass
 {
   public MyClass(Color color1, Color color2)
          : base(0.0f, 0.0f, 0.0f, 0.0f, color1, color2)
        {
           //...
        }
  }

你知道有没有办法获取父构造函数调用中使用的参数/值列表?

1 个答案:

答案 0 :(得分:0)

您可以进入 MyClass 并查看父类的构造函数,而不是进入 BaseType 的类型:

Type mySuperClassType = typeof(MyClass).BaseType;
        foreach (ConstructorInfo MyConstructor in mySuperClassType.GetConstructors())
        {
            var MyParameters = MyConstructor.GetParameters();
            Console.WriteLine(MyConstructor.ToString());
            // prints Void .ctor(Single, Single, Single, Single, System.Drawing.Color, System.Drawing.Color) 
        }

这里的工作示例:https://dotnetfiddle.net/S7CFT0

相关问题