在单独的 AppDomain 中创建并执行 LINQPad 类/方法



我正在尝试在每个人最喜欢的原型IDE(LINQPad(中对一些代码进行原型设计。 我想在单独的 AppDomain 中运行我在脚本中创建的类。 例如:

void Main()
{
AppDomain domain = AppDomain.CreateDomain("MyDomain");
var qry = (AdHocQuery)domain.CreateInstanceAndUnwrap( typeof( AdHocQuery ).Assembly.Location, typeof( AdHocQuery ).FullName );
qry.Run();
AppDomain.Unload(domain);
}
class AdHocQuery
{
public void Run()
{
}
}

我得到以下异常:FileLoadException: Could not load file or assembly 'C:\Users\terry.aney\AppData\Local\Temp\LINQPad5\_jpomhdlf\query_onuisp.dll' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

是否可以在 LINQPad 中执行此操作?

回答我自己的问题,即使它来自Joe Albahari的推文:)

假设您指定的是程序集位置而不是名称,请使用 CreateInstancefromAndUnwrap. 另外,请改用 Util.CreateAppDomain 的 AppDomain.CreateDomain 进行依赖关系解析。加 Util.NewProcess=true 以查询是否出现类型兼容性错误。

最新更新