找不到类型'###'的构造函数

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,以便激活器找到构造函数?

谢谢.

Mar*_*ell 6

适用于.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)

我想也许:你的构造函数或其中一种类型可能不公开吗?