Необходимо указать полное имя, т. Е. «System.NullReferenceException».
В данном конкретном случае этого достаточно - потому что NullReferenceException
в mscorlib. Однако, если вам нужны другие исключения - такие как ConstraintException
, который находится в сборке System.Data, - вам также необходимо указать полное имя сборки. Type.GetType(string)
ищет только в текущей исполняемой сборке и mscorlib имена типов, которые не указывают сборку.
РЕДАКТИРОВАТЬ: Вот короткая, но полная программа, которая работает:
using System;
using System.Reflection;
class Test
{
static void Main()
{
string typeName = "System.NullReferenceException";
string message = "This is a message";
Type type = Type.GetType(typeName);
ConstructorInfo ctor = type.GetConstructor(new[] { typeof(string) });
object exception = ctor.Invoke(new object[] { message });
Console.WriteLine(exception);
}
}