日期:2014-05-18  浏览次数:20415 次

请问同一个WEB解决方案但不同项目,可以使用Type.GetType去获得“类”类型吗?
假设我有一个WEB的解决方案
有两个类库,A   与   B两个项目
A中有public   class   ClassA
B中有public   class   ClassB
-------------------------------
在A可能可以使用类似下面的方法去获取B.ClassB的类型,但下面的写法不能!
public   class   ClassA
{
      Type   myType   =   Type.GetType( "B.ClassB ",   true);//   获得“类”类型
}

------解决方案--------------------
A要添加对B的引用,然后用完全限定名反射
------解决方案--------------------
Type myType = System.Reflection.Assembly.Load(....).GetType(....);
------解决方案--------------------
1。
跟项目没有任何关系!!!!

2。
方法
public static Type GetType (
string typeName,
bool throwOnError
)

typeName 是指此类型的完全限定名。

====
Type myType = Type.GetType( "B.ClassB ", true); // 这里 B. 并并非是项目的名称而应该是例如名称空间构成的符合类型完全限定名

详细的解释请参考:
http://msdn2.microsoft.com/zh-cn/library/c5cf8k43(VS.80).aspx
------解决方案--------------------
1。
本地程序集:
假设你的 B项目生成的dll 名称为 BAssemble.dll
有一类 MyClass 定义在名称空间 B.Sub1.Sub2 中

项目 A 添加对 BAssemble.dll 的引用之后

Type type = Type.GetType( "B.Sub1.Sub2.MyClass, BAssemble ");

2.
对于全局程序集 (GAC),需要指定版本号等信息

Type.GetType( "System.Data.DataTable,System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ", true)