【问题标题】:Create and execute a LINQPad class/method in separate AppDomain在单独的 AppDomain 中创建并执行 LINQPad 类/方法
【发布时间】:2020-06-19 14:25:50
【问题描述】:

我正在尝试在每个人都喜欢的原型设计 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 中可以做到这一点吗?

【问题讨论】:

    标签: appdomain linqpad


    【解决方案1】:

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

    鉴于您指定的是装配位置而不是名称,请使用 CreateInstanceFromAndUnwrap。另外,请改用 Util.CreateAppDomain 的 AppDomain.CreateDomain 以解决依赖关系。添加 Util.NewProcess=true 来查询是否遇到类型兼容性错误。

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多