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

标签 c# reflection system.reflection

我有一个不同的场景。我需要创建一个类的实例,该类是公共(public)的,但其所有构造函数都是内部的。该类没有默认构造函数。

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

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# - 如何使用反射创建带参数的内部构造函数的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426699/

相关文章:

c# - 使用没有 InvokePattern 或 clickablePoint 的 UI Automation 在单击按钮时调用

Java 反射获取父类(super class)得到意想不到的结果

c# - 通过反射将 T 包装在 Nullable<T> 中

c# - System.Reflection.TargetException : Non-static method requires a target. 是什么意思?

c# - 如何将结构中的预定义颜色转换为颜色列表?

c# - 无法加载文件或程序集 'app_code' 或其依赖项之一

c# - 在 Visual Studio 中创建的 JSON 文件开头的 "EF BB BF"

c# - 在 C# 中进行 Windows Phone 开发的 Intent

java - 从父类(super class)型类获取泛型参数

java - 用什么代替 Class.newInstance()?