这是代码:
public class Program
{
public static void Main(string[] args)
{
Test test = new Test();
}
}
public class Test
{
public Test() {
Console.WriteLine("type: " + Type.GetType("Registration"));
}
}
public class Registration
{
public int mAge;
public string mName;
public Registration() {}
}
Run Code Online (Sandbox Code Playgroud)
当它尝试获取类型时Registration,它返回null.所以,两种.Name或.AssemblyQualifiedName无法访问.
AssemblyQualifiedName只有GetType()不退货我才能提供null.
为什么GetType()返回null?希望问题很清楚.
这很好.如果它对您不起作用,则可能存在命名空间,在这种情况下您需要"TheNamespace.Registration".如果类型在不同的程序集中,您还需要指定它 ; 最终最可靠的字符串版本是类型AssemblyQualifiedName- "Registration, ConsoleApp48, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"如果涉及强名称,它可能是类似的,或者更长.
但是,typeof(Registration)比任何这些选项都容易.