【问题标题】:AppDomain.DoCallBack in PowershellPowershell 中的 AppDomain.DoCallBack
【发布时间】:2016-12-06 05:43:49
【问题描述】:

我想在另一个 AppDomain 中调用加载程序集,并在该程序集中调用一些函数。 它适用于 C# 代码:

AppDomain otherDomain0 = AppDomain.CreateDomain("otherDomain");
otherDomain0.DoCallBack(new CrossAppDomainDelegate(MyCallBack));
static public void MyCallBack(){  }

虽然它不在 powershell 中:

$domain = [AppDomain]::CreateDomain("foo")
$domain.DoCallback({ Write-Host “get called” })

例外:

使用“1”参数调用“DoCallBack”的异常:“无法序列化 委托非托管函数指针、动态方法或方法 在代表创建者的程序集之外。” 在 line:1 char:1 + $domain.DoCallback({ + ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : 未指定: (:) [], MethodInvocationException + FullyQualifiedErrorId : 序列化异常

我的 powershell 版本是 5.0.10586.672。 我错过了什么吗?

根据这个post@jame-ko 可以让它工作。

【问题讨论】:

标签: .net powershell


【解决方案1】:

“基于错误,它不起作用。当您使用脚本块作为委托时,Powershell 会创建动态方法。” 这是我从 powershell 专家那里得到的回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2010-10-26
    • 2019-06-06
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多