This code:
Type.GetType("namespace.a.b.ClassName")
returns null
.
and I have in the usings:
using namespace.a.b;
Update:
The type exists, it's in a different class library, and i need to get it by string name.
This code:
Type.GetType("namespace.a.b.ClassName")
returns null
.
and I have in the usings:
using namespace.a.b;
Update:
The type exists, it's in a different class library, and i need to get it by string name.
You can also get the type without assembly qualified name but with the dll name also, for example:
I had the same situation and it worked for me. I needed an object of type "DataModel.QueueObject" and had a reference to "DataModel" so I got the type as follows:
The second string after the comma is the reference name (dll name).
Try using the full type name that includes the assembly info, for example:
I had the same situation when I was using only the the namesspace.classname to get the type of a class in a different assembly and it would not work. Only worked when I included the assembly info in my type string as shown above.
When I have only the class name I use this:
I cheated. Since the types I want to create (by name) are all in In a dll I control, I just put a static method in the dll in the assembly that takes a simple name, and calls type.GetType from that context and returns the result.
The original purpose was so that the type could be specified by name in configuration data. I've since change the code so that the user specified a format to process. The format handler classes implement a interface that determines if the type can parse the specified format. I then use reflection to find types that implement the interface, and find one that handles the format. So now the configuration specifies a format name, a not a specific type. The reflection code can look at adjacent dlls and load, them so I have a sort poor man's plug-in architecture.
If the assembly is referenced and the Class visible :
GetType returns null because the type is not found, with typeof, the compiler may help you to find out the error.
Make sure that the comma is directly after the fully qualified name
As this wont work
I was stumped for a few days on this one