typeof: how to get type from string

前端 未结 2 1402
-上瘾入骨i
-上瘾入骨i 2021-01-03 18:05

I\'ve many objects, each of which I have information in string about its type.
like:

string stringObjectType = \"DateTime\";

While ru

相关标签:
2条回答
  • 2021-01-03 18:45
    try
    {
        // Get the type of a specified class.
        Type myType1 = Type.GetType("System.DateTime");
        Console.WriteLine("The full name is {myType1.FullName}.");
    
        // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
        Type myType2 = Type.GetType("NoneSuch", true);
        Console.WriteLine("The full name is {myType2.FullName}.");
    }
    catch(TypeLoadException e)
    {
        Console.WriteLine(e.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine(e.Message);
    }
    

    See Type.GetType(string) on MSDN

    0 讨论(0)
  • 2021-01-03 18:48

    You can use Type.GetType() to get a type from its string name. So you can do:

    Type DateType = Type.GetType("System.DateTime");
    

    You can't just use "DateTime" since that's not the type's name. If you do this and the name is wrong (it doesn't exist) then it'll throw an exception. So you'll need a try/catch around this.

    You can get the proper type name for any given object by doing:

    string TypeName = SomeObject.GetType().FullName;
    

    If you need to use vague or incomplete names, then you're going to have a fun time messing around with reflection. Not impossible, but certainly a pain.

    0 讨论(0)
提交回复
热议问题