.NET中的GetType反射不起作用

Mar*_*ood 0 .net

我正试着打电话

Type.GetType("System.Diagnostics.TraceFilter")
Run Code Online (Sandbox Code Playgroud)

不是typeof(System.Diagnostics.TraceFilter)

但结果始终为null.任何人都可以帮我吗?如何获取此抽象类的类类型?

Tim*_*oyd 6

从Type.GetType的文档(字符串typeName)

要获取的类型的程序集限定名称.请参阅AssemblyQualifiedName.如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了.

您正在钓鱼的类型(即"System.Diagnostics.TraceFilter")不在当前正在执行的程序集中或"Mscorlib.dll"中,它实际上在"System.dll"中.因此,您必须使用完全限定的程序集名称,例如:

 Type type = Type.GetType("System.Diagnostics.TraceFilter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Run Code Online (Sandbox Code Playgroud)

或者你可以使用:

 Type type = typeof(System.Diagnostics.TraceFilter);
Run Code Online (Sandbox Code Playgroud)