How to get class type by its class name?

Huan Fu picture Huan Fu · Aug 19, 2013 · Viewed 64.9k times · Source
namespace Myspace
{
    public class MyClass
    {
    }
} //This class is in another file.

using Myspace;
static void Main(string[] args)
{
    Regex regexViewModelKey = new Regex(RegularExpr.ViewModelKeyPattern);
    string viewModel = regexViewModelKey.Match(match.Value).Value;
    //Now, vieModel is a string, and its value is "MyClass". So, I only know the class name, this is why I ask this question.

    //Now, I'm only allowed to use the string form of this class name to get its type.
    //I have tyied like this, but its no use.
    Type t = Type.GetType(viewModel);
    //it's return a null.

    //Then I tyied another method like this, but there is an exception when calling Assembly.Load
    Assembly assembly = Assembly.Load("Myspace");
    Type ty = assembly.GetType("Myspace" + viewModel);
}

I hope my question is clear. Can any one help me.THX I'm only allowed to use the string form of this class name to get its type.

thx everyone. I have solved this question by myself like this.

{
      Type t = Type.GetType(string.Concat(viewModel, ",", "Myspace"));
}

Answer

Shen liang picture Shen liang · Oct 11, 2015

just use the function typeof(). The parameter is just that class name.

Type type = typeof(FIXProtoClientTest);

MSDN on typeof()