Никто не отвечает на мой вопрос в Разница между Activator.CreateInstance () и typeof (T) .InvokeMember () с BindingFlags.CreateInstance . Я думаю, что проблема закрыта, и я спрашиваю здесь снова.
У Бен М есть хорошая функция, которая мне нужна для проекта. Функция -
public static T CreateInstance<T>()
{
bool bNeedSecurityCheck = true;
bool canBeCached = false;
RuntimeMethodHandle emptyHandle = RuntimeMethodHandle.EmptyHandle;
return (T) RuntimeTypeHandle.CreateInstance(typeof(T) as RuntimeType, true, true, ref canBeCached, ref emptyHandle, ref bNeedSecurityCheck);
}
Я использую .NET 3.5 и Visual studio 2008. Выдает ошибку «Имя типа EmptyHandle не существует в типе System.RuntimeMethodHandle».
Затем я использовал «RuntimeMethodHandle emptyHandle = new RuntimeMethodHandle ();». Другая ошибка представляет. RuntimeTypeHandle также не имеет метода CreateInstance. Активатор имеет. Но он не принимает никакого параметра ref.
Спасибо за разъяснения заранее!