GetType,托管CodeGen中的C#疑问

Syn*_*ter 1 c#

考虑一下代码,

Type t0 = Type.GetType("System.Drawing.dll");
Type t1 = Type.GetType("System.Drawing.Font");
Run Code Online (Sandbox Code Playgroud)

这里为了找到"System.Drawing.Font"的类型,需要程序集"System.Drawing.dll".如何使用它.?

即如果我这样做,那么t0的值不会为空.

考虑我是一个dll,proj.dll,我需要找到dll中存在的类Class1的类型.

Jon*_*eet 9

指定程序集,包括强命名程序集的版本号:

Type t = Type.GetType("System.Drawing.Font,System.Drawing,"+
                      " Version=2.0.0.0, Culture=neutral, "+
                      "PublicKeyToken=b03f5f7f11d50a3a");
Run Code Online (Sandbox Code Playgroud)

当然,如果它真的只是System.Drawing.Font(或者你在编译时知道的其他类型),请使用typeof:

Type t = typeof(System.Drawing.Font);
Run Code Online (Sandbox Code Playgroud)

如果在编译时知道同一程序集中的其他类型,则可以使用Assembly.GetType:

Type sizeType = typeof(System.Drawing.Size);
Assembly assembly = sizeType.Assembly;
Type fontType = assembly.GetType("System.Drawing.Font");
Run Code Online (Sandbox Code Playgroud)