为什么GetType()无法识别此类型?

mar*_*zzz 1 c# types

这是代码:

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?希望问题很清楚.

Mar*_*ell 7

这很好.如果它对您不起作用,则可能存在命名空间,在这种情况下您需要"TheNamespace.Registration".如果类型在不同的程序集中,您还需要指定 ; 最终最可靠的字符串版本是类型AssemblyQualifiedName- "Registration, ConsoleApp48, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"如果涉及强名称,它可能是类似的,或者更长.

但是,typeof(Registration)任何这些选项都容易.