Powershell中的AppDomain.DoCallBack

时间:2016-12-05 19:48:40

标签: .net powershell

我想在另一个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” })

例外:

  

异常调用" DoCallBack"用" 1"参数:"无法序列化   委托非托管函数指针,动态方法或方法   在代表创作者的集会之外。"在行:1个字符:1 +   $ domain.DoCallback({+ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:   NotSpecified:(:) [],MethodInvocationException +   FullyQualifiedErrorId:SerializationException

我的powershell版本是5.0.10586.672。 我想念一下吗?

根据这个post @ jame-ko可以使它发挥作用。

1 个答案:

答案 0 :(得分:0)

"根据错误,它将无法正常工作。当您使用脚本块作为委托时,Powershell会创建动态方法。" 这是我从PowerShell专家那里得到的回应。