C# String to Type Conversion: Avoiding Null Returns
Converting strings representing class names into actual types in C# can sometimes yield null results. This commonly occurs when using Type.GetType("System.Int32")
, which only functions correctly for types within mscorlib
or the current assembly.
To successfully convert your custom types, you must specify both the namespace and the assembly:
Type type = Type.GetType("Namespace.MyClass, MyAssembly");
For strongly-named assemblies, ensure you include all relevant assembly information as detailed in the Type.GetType(string)
documentation.
Alternatively, if you have a reference to the assembly, use Assembly.GetType()
:
Assembly asm = typeof(SomeKnownType).Assembly; Type type = asm.GetType(namespaceQualifiedTypeName);
These methods provide reliable string-to-type conversion in diverse situations.
The above is the detailed content of How Do I Avoid Null Returns When Converting Strings to Types in C#?. For more information, please follow other related articles on the PHP Chinese website!