C# DLL嵌套调用时,需要以被修改的DLL作为最下层,从下往上地重新生成所有DLL才可生效。
DLL1(最下层)代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Class1
{
public void ConsoleWriteLineSomething()
{
Console.WriteLine("A");
}
}
}
DLL2(中间层)代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary2
{
public class Class1
{
public void ConsoleWriteLineSomething()
{
ClassLibrary1.Class1 class1 = new ClassLibrary1.Class1();
class1.ConsoleWriteLineSomething();
}
}
}
应用程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
ClassLibrary2.Class1 class1 = new ClassLibrary2.Class1();
class1.ConsoleWriteLineSomething();
Console.Read();
}
}
}
实验步骤:
1.在代码无修改的情况下运行应用程序,输出结果为A。
2.修改DLL1动态链接库ConsoleWriteLineSomething方法,使其输出B并重新生成DLL1。
3.运行应用程序,输出结果为A。
4.重新生成DLL2,运行应用程序,输出结果为B。