如何使用powershell序列化对象?

时间:2013-09-11 17:46:51

标签: powershell powershell-v3.0

我有机器需要分析信息。我使用powershell将信息收集到一个对象中,然后使用Export-Clixml myObject.xml将该对象写入文件。

然后我尝试使用$placeholder = Import-Clixml myObject.xml测试导入此对象,这样可以正常工作,因为我可以看到方法中的所有方法和访问数据。

但是,每当我尝试在需要此类对象的程序中使用此对象时,我会收到Type Mismatch错误。

序列化对象不可能这样做吗?

1 个答案:

答案 0 :(得分:1)

如果查看反序列化对象的完整类型名称,您将看到它们以“反序列化”开头。例如,如果我使用一堆System.Diagnostics.Process对象并使用Export-Clixml导出它们,当我使用Import-Clixml导入它们时,类型现在是Deserialized.System.Diagnostics.Process个对象。 PowerShell正在做的是保存数据,然后再次访问它。你没有回到活的对象。通常,唯一可用的方法是ToString()。这类似于远程序列化所发生的情况。如果你想要完全保真的.NET类型序列化。我会使用其中一个.NET序列化程序,如BinarySerializer或XmlSerializer或更新的DataContractSerializer。