我无法使用Type.GetType方法获取类型?

时间:2011-12-30 15:56:20

标签: c#

很抱歉,这个问题听起来很混乱。我的问题是我使用以下内容:

var packageType = Type.GetType(className); 

我已经非常仔细地检查过className是一个类型的完全限定名。我多次检查了className变量。但是,当执行此操作时,它会将packageType设为null!

我知道我的班级名称是Product。有没有办法,我可以得到名称的字符串表示,以便我可以检查它是否与我传递给上面的className字符串完全比较。

3 个答案:

答案 0 :(得分:3)

是:typeof(Product).FullName

答案 1 :(得分:3)

您可能需要提供程序集限定名称。注意:

Type.GetType

  

参数:typeName

     

输入:System.String

     

要获取的类型的程序集限定名称。见AssemblyQualifiedName。如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了。

例如,如果我试图获取在当前正在执行的程序集之外定义的类型,我可以使用Type.GetType如下:

var name = "CommonLibrary.ICommand, CommonLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
var type = Type.GetType(name);

如果在执行程序集中,我只需要通过命名空间

来限定它
var type = Type.GetType("CommonLibrary.ICommand");

答案 2 :(得分:-1)

你需要使用一个对象来调用它,例如

string str = "";
string type = str.GetType().ToString();

这将在“type”变量

中为您提供“System.String”