我创建了一个winform c#程序来演示这个问题。它是一个Visual Studio项目,带有对MySql.Data.dll的引用:
Form1.cs的
namespace DynamicLoadingTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
int i = 9;
if (i == 10)
{
System.Data.Common.DbCommand cmd = MySQLInterface.GetMySQLCommand();
}
}
}
public class MySQLInterface
{
public static System.Data.Common.DbCommand GetMySQLCommand()
{
return new MySql.Data.MySqlClient.MySqlCommand();
}
}
}
Program.cs的
namespace DynamicLoadingTest
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Form1.cs的设计器文件没有任何特殊内容,只是vs2015的默认模板。
我们正在使用Mark Russinovich的Process Explorer来分析执行的文件:
为什么?