use*_*169 2 .net c# reflection
我有一个接受这些参数的类型:
public SmaSeries(ISeries<decimal> parent, int periods, TierKind? runOnTier = null)
Run Code Online (Sandbox Code Playgroud)
我试图通过在args参数中传递object []来使用Activator.CreateInstance(接受类型和args的重载)创建此类型的实例:
new object[]
{
new DecimalSeries(),
20,
new Nullable<TierKind>(TierKind.Client)
}
//DecimalSeries implements ISeries<decimal>
Run Code Online (Sandbox Code Playgroud)
返回找不到类型'SmaSeries'的构造函数.
有没有办法修复args,以便激活器找到构造函数?
谢谢.
适用于.NET 4.5,甚至2.0
using System;
class SmaSeries
{
public SmaSeries(ISeries<decimal> parent, int periods,
TierKind? runOnTier = null) { }
static void Main()
{
object[] args = new object[]
{
new DecimalSeries(),
20,
new Nullable<TierKind>(TierKind.Client)
};
object obj = Activator.CreateInstance(typeof(SmaSeries), args);
}
}
enum TierKind { Client }
interface ISeries<T> { }
class DecimalSeries : ISeries<decimal> { }
Run Code Online (Sandbox Code Playgroud)
我想也许:你的构造函数或其中一种类型可能不公开吗?