1

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

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

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

这对于序列化对象是不可能的吗?

4

1 回答 1

1

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

于 2013-09-11T18:07:55.307 回答