3

私はこれに間違った方法でアプローチしている可能性があり、方向性は大歓迎です。

Startソリューション内のすべてのメソッドをトリガーしようとしています。

Start メソッドは日時を取ります

ただし、「Invoke」のパラメーターとして日付を渡そうとすると、エラーが発生します

System.DateTime から object[] に変換できません

どんな考えでも大歓迎

ありがとうございます

scheduleDate = new DateTime(2010, 03, 11);

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "AssetConsultants");

foreach (Type t in typelist)
{
    var methodInfo = t.GetMethod("Start", new Type[] {typeof(DateTime)} );
    if (methodInfo == null) // the method doesn't exist
    {
       // throw some exception
    }

    var o = Activator.CreateInstance(t);                 
    methodInfo.Invoke(o, scheduleDate);
}
4

2 に答える 2

9

method の 2 番目のパラメーターには、パラメーターをInvoke含むオブジェクト配列が必要です。DateTimeそのため、オブジェクト配列でラップを渡す代わりに:

methodInfo.Invoke(o, new object[] { scheduleDate });
于 2016-08-01T04:44:28.467 に答える