如何使用反射创建带参数的内部构造函数的实例?

How to create an instance of the internal constructor with parameters using Reflection?

我有不同的情况。我需要 创建一个 class 的实例,它是 public 但它的所有构造函数都是内部的 。 class 没有默认构造函数。

我尝试了以下方法,但没有用。

Activator.CreateInstance(typeof(ClassName));
Activator.CreateInstance(typeof(ClassName), nonpublic:true);
Activator.CreateInstance(typeof(ClassName),true);
Activator.CreateInstance(typeof(ClassName), new object[]{double,bool});

我也试过了,但结果是 System.MissingMethodException。

var constructors = typeof(ClassName).GetConstructors();
foreach(var ctor in constructors)
    ctor.Invoke(new object[] {double, bool});

无法在 Xamrarin 中使用 BindingFlags。我被卡住了,有人对此有解决方案吗?

我自己找到了解决方案。这是我所做的。

ConstructorInfo info = typeof(ClassName).GetTypeInfo().DeclaredConstructors.First();
ClassName e = info.Invoke(new object[] { parameters }) as ClassName;

我希望这可能对某人有所帮助。干杯:)