c# – 如何使用Reflection创建带有参数的内部构造函数的实例?
作者:互联网
我有一个不同的场景.我需要创建一个公共类的实例,但它的所有构造函数都是内部的.该类没有默认构造函数.
我尝试了以下方法,但它没有用.
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;
我希望这可以帮助某人.干杯:)
标签:c,reflection,system-reflection 来源: https://codeday.me/bug/20190609/1203976.html