Никто не отвечает на мой вопрос в Difference between Activator.CreateInstance() and typeof(T).InvokeMember() with BindingFlags.CreateInstance. Я думаю, что проблема закрыта, и я спрашиваю здесь еще раз.Какая версия .NET содержит RuntimeMethodHandle.EmptyHandle?
Ben M имеет прекрасную функцию, которая мне нужна для проекта. Функция -
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.
Благодарим за разъяснения!
Вы не должны были задавать * вопрос *, добавив * ответ * на другой вопрос. Написание нового вопроса (как вы это сделали здесь) - правильный подход. –