Если вы используете
Type barType = Type.GetType("Foo.Bar, whateverassembly");
Type actionType = typeof(Action<>).MakeGenericType(barType);
actionType
теперь будет представлять Action<Foo.Bar>
. Однако, чтобы использовать его, вам нужно будет продолжать использовать рефлексию, поэтому вам нужно найти MethodInfo
, который соответствует подписи void(Foo.Bar)
, и вызвать Delegate.CreateDelegate
, чтобы создать делегата. И вам понадобится Delegate.DynamicInvoke
, чтобы выполнить его.
Delegate call = Delegate.CreateDelegate(actionType, ...);
...
call.DynamicInvoke(someBar);
Что-то говорит мне, что это не то, о чем ты думаешь ...