【发布时间】:2010-11-24 10:39:45
【问题描述】:
我正试图找出一种方法来在我的 WinForm 应用程序加载之前预处理一些事情。我尝试将静态 void Main() 放在类库项目中的表单中,并从 Program.cs 中将其注释掉。这产生了一个编译时错误:“......不包含适合入口点的静态'Main'方法”。这是有道理的,因为没有加载程序,也没有加载 DLL。
所以问题是,有没有办法做到这一点?我希望 DLL 中的表单能够确定使用哪个表单来启动应用程序:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if(condition1)
{
Application.Run(new Form1());
}
else if(condition2)
{
Application.Run(new Form2());
}
}
此逻辑将在多个应用程序中使用,因此将其放在一个通用组件中是有意义的。
【问题讨论】:
-
你当然可以做这种事情。我看不出有任何理由从 WinForms 可执行文件中删除 Main()。如何设置条件1、条件2等?发生了什么让您说它没有给出预期的结果?
标签: c# dll entry-point