Reflection 具有可选参数的Activator.CreateInstance

Reflection 具有可选参数的Activator.CreateInstance,reflection,.net-4.0,optional-parameters,Reflection,.net 4.0,Optional Parameters,有人知道如何使用只有1个可选参数的构造函数实例化类吗 我两个都试过了 (T)Activator.CreateInstance(typeof(T), new object[] { Type.Missing }); 及 没有成功。。。我收到了MissingMethodException这起作用了: (T)Activator.CreateInstance(typeof(T), BindingFlags.CreateInstance |

有人知道如何使用只有1个可选参数的构造函数实例化类吗

我两个都试过了

(T)Activator.CreateInstance(typeof(T), new object[] { Type.Missing });

没有成功。。。我收到了MissingMethodException

这起作用了:

(T)Activator.CreateInstance(typeof(T), 
                    BindingFlags.CreateInstance |
                    BindingFlags.Public |
                    BindingFlags.Instance | 
                    BindingFlags.OptionalParamBinding,null, new object[] {Type.Missing },CultureInfo.CurrentCulture);

可选参数:对于那些遇到此答案并被“此标志应仅与Type.InvokeMember一起使用”绊倒的人,希望可以节省我为确保调用
Activator.CreateInstance
也是该
BindingFlags
枚举的安全使用而花费的时间
(T)Activator.CreateInstance(typeof(T), 
                    BindingFlags.CreateInstance |
                    BindingFlags.Public |
                    BindingFlags.Instance | 
                    BindingFlags.OptionalParamBinding,null, new object[] {Type.Missing },CultureInfo.CurrentCulture);