当托管 PowerShell 运行时时,有没有可能将
例如:
我有一个 cmdlet 调用
是否有任何方法可以绕过将每个属性值映射到其对应的原始对象? 我假设 PowerShell 以某种方式执行此操作,因为您可以将
我花了很长时间用 Reflector 深入挖掘 PS 程序集,但还没有真正确定这种黑科技是如何实现的。
有什么想法吗?
编辑:我忘记了一个非常重要的细节。 我正在测试的
PSObject
转换回其原始类型呢?例如:
我有一个 cmdlet 调用
WriteObject
并在管道中推送 ClassXzy 集合。 当我从主机端调用 PowerShell.Invoke
时,我会检索到一组具有 BaseObject
属性的 PSObject
s 集合。 将 BaseObject
强制转换为 ClassXyz
失败。是否有任何方法可以绕过将每个属性值映射到其对应的原始对象? 我假设 PowerShell 以某种方式执行此操作,因为您可以将
PSObject
s 传递给 cmdlet,并将其转换为参数类型。 但是如何实现?我花了很长时间用 Reflector 深入挖掘 PS 程序集,但还没有真正确定这种黑科技是如何实现的。
有什么想法吗?
编辑:我忘记了一个非常重要的细节。 我正在测试的
PSObject
是远程对象,因此 BaseObject
类型被命名为 Deserialized.ClassXyz
。 这就是为什么我看到如此奇怪的行为。