Is there a way to know at runtime whether a class name is a class or not? In other words, is there some sort of method you can use that would tell you whether a string input is a .NET class?
            Asked
            
        
        
            Active
            
        
            Viewed 118 times
        
    1
            
            
        - 
                    4This sounds like a "[XY Problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)", explain what you are trying to do that the ability to check if a string is a class name or not would be the solution. – Scott Chamberlain Feb 12 '14 at 05:16
 - 
                    Here is a similar question http://stackoverflow.com/questions/1827425/how-to-check-programatically-if-a-type-is-a-struct-or-a-class – TGH Feb 12 '14 at 05:17
 - 
                    You may use reflection. Start with this [related question](http://stackoverflow.com/questions/1315665/c-list-all-classes-in-assembly) – Alex R. Feb 12 '14 at 05:19
 
1 Answers
5
            Try this
bool isClass = false;
Type t = Type.GetType("SomeNameSpace.YourType");
if(t != null)
{
    isClass = t.IsClass;
} 
I am assuming here that your string input is the namespace/type. I am also assuming that the namespace is defined and available in the context you're running the code in. It will give you a null reference if the type is undefined.
        Scott Chamberlain
        
- 124,994
 - 33
 - 282
 - 431
 
        TGH
        
- 38,769
 - 12
 - 102
 - 135
 
- 
                    Type.GetType() will return NULL if "SomeNameSpace.YourType" is not found. – lastr2d2 Feb 12 '14 at 05:26
 - 
                    1Besides mentioning it in the text, you might want to update your code example so it does not throw a `NullRefrenceException` – Scott Chamberlain Feb 12 '14 at 05:33