Powershell CliXml序列化/反序列化丢失类型
下面的小函数显示,在序列化/反序列化操作期间,我丢失了一个参数的Powershell CliXml序列化/反序列化丢失类型,powershell,serialization,powershell-4.0,Powershell,Serialization,Powershell 4.0,下面的小函数显示,在序列化/反序列化操作期间,我丢失了一个参数的Scriptblock类型 Function CliXMLPOC ([String]$p1, [scriptblock]$p2) { # $PSBoundParameters is an automatic var containing bound parameters Write-Host "BEFORE Members are : $($PSBoundParameters["p1"].GetType()), $($PSB
Scriptblock
类型
Function CliXMLPOC ([String]$p1, [scriptblock]$p2)
{
# $PSBoundParameters is an automatic var containing bound parameters
Write-Host "BEFORE Members are : $($PSBoundParameters["p1"].GetType()), $($PSBoundParameters["p2"].GetType())"
$serialized = [System.Management.Automation.PSSerializer]::Serialize($PSBoundParameters)
$deserialized = [System.Management.Automation.PSSerializer]::Deserialize($serialized)
Write-Host "AFTER Members are : $($deserialized["p1"].GetType()), $($deserialized["p2"].GetType())"
}
CliXMLPOC "Toto" {write-host "coucou"}
结果如下:
BEFORE Members are : string, scriptblock
AFTER Members are : string, string
有谁能解释一下,帮我找回预期的结果吗
BEFORE Members are : string, scriptblock
AFTER Members are : string, scriptblock
我99%肯定这是一个错误。我可以重新创建问题,但找不到解决方法。我已经提交了一个错误报告来连接,所以请随意添加更多信息。该错误仍然存在于PowerShell V5.0中