我从CIL到C#转换器(.Net反射器)恢复了以下类。不幸的是,VS2010不会编译它。知道我怎么能让它发挥作用吗?
using System;
using System.IO;
using System.Reflection;
internal class <Module>
{
static <Module>()
{
IPLRes.ExeDirectory = new FileInfo(Assembly.GetExecutingAssembly>>().Location).DirectoryName;
AppDomain expr_1E = AppDomain.CurrentDomain;
expr_1E.AssemblyResolve += new ResolveEventHandler(expr_1E.AssemblyNotFound);
IPLRes.LogDirectory = IPLRes.ExeDirectory + "\\log";
IPLMsg.Log("Loader", "Application starting...");
}
public static Assembly AssemblyNotFound(object A_0, ResolveEventArgs A_1)
{
string text = A_1.Name;
text = text.Remove(text.IndexOf(","));
text = IPLRes.ExeDirectory + "\\bin35\\" + text + ".dll";
return Assembly.LoadFile(text);
}
[STAThread]
public static void IPLMain(string[] A_0)
{
if (A_0.Length >= 1)
{
IPLRes.BatchMode = A_0[0].Contains("batch");
}
if (!IPLRes.BatchMode)
{
IPLRes.ShowSplash("ipl_splash.png");
}
string[] array = new string[]
{
"-X:FullFrames",
"-X:Python30",
"-c",
IPLRes.GetString("ipl_entrypoint35.py")
};
IPLMsg.Log("Loader", "Starting main interpreter");
IPLRes.MainInterpreter = new IronPythonHost();
if (IPLRes.MainInterpreter.Run(array) != 0)
{
array = new string[]
{
"-c",
IPLRes.GetString("ipl_crash.py")
};
IPLMsg.Log("Loader", "Starting crash handler interpreter");
IPLRes.CrashInterpreter = new IronPythonHost();
IPLRes.CrashInterpreter.Run(array);
}
IPLMsg.Log("Loader", "Application shutting down.");
IPLMsg.DumpLogFile();
}
}
答案 0 :(得分:7)
这是一个模块初始化程序,C#不支持。
您可以将其放在Main()中
您需要将Main()的其余部分移动到一个单独的方法,以便在添加AssemblyResolve
处理程序后可以对其进行JIT。