为什么动态加载程序集无法找出framework 4.0 和Framwork2.0 新增的方法和类?
因为控制台程序默认就添加了framework4.0的程序集,当你使用Object,Type,string这些类的时候就已经在使用已经加载的程序集了,而clr不会重复的去加载程序集??,这点记不清了。
所以V2Assembly 和v4Assembly都是framework4.0的Assembly。
验证:
复制代码 代码如下:
static void Main(string[] args)
{
Assembly assemblyV2 = Assembly.LoadFile(
@"C:WINDOWSMicrosoft.NETframeworkv2.0.50727mscorlib.dll");
Assembly assemblyV4 = Assembly.LoadFile(
@"C:WINDOWSMicrosoft.NETframeworkv4.0.30319mscorlib.dll");
Console.WriteLine("V2的名称{0}nV4的名称{1}", assemblyV2.FullName, assemblyV4.FullName);
Console.ReadLine();
}
输出如下:
因为mscorlib.dll 是在Share Domain中的程序集,所以在同一应用程序中无法加载两个不同的mscorlib.dll.所以考虑使用两个应用程序,一个framework 2.0,另一个framework 4.0。
于是可以换个思路:使用2.0的framework来创建的程序来调用framework4.0的WCF服务。
代码结构如下:


