国会DLLにmain()関数を書くことは、.NETフレームワークによって呼び出されることはありませんということは本当に悲しいです。 Microsoftはそれを忘れてしまったようです。
しかし、あなたは簡単に自分でそれを実装することができます
DLLアセンブリでは、あなたがこのコードを追加します。
using System.Windows.Forms;
public class Program
{
public static void Main()
{
MessageBox.Show("Initializing");
}
}
次にエグゼ総会でこの機能を追加し、このDLLをロードする:
using System.Reflection;
void InitializeAssembly(Assembly i_Assembly)
{
Type t_Class = i_Assembly.GetType("Program");
if (t_Class == null)
return; // class Program not implemented
MethodInfo i_Main = t_Class.GetMethod("Main");
if (i_Main == null)
return; // function Main() not implemented
try
{
i_Main.Invoke(null, null);
}
catch (Exception Ex)
{
throw new Exception("Program.Main() threw exception in\n"
+ i_Assembly.Location, Ex);
}
}
明らかに、このアセンブリを使用する前に、この関数を最初に呼び出す必要があります。
可能な複製[SilverlightとWindows Phone 7でサポートされているモジュール初期化子ですか?](http://stackoverflow.com/questions/5365994/are-module-initializers-supported-in-silverlight-and-windows-phone-phone- 7) –