为什么在PowerShell中使用DateTime将PSCustomObjects转换为自定义类型会失败?

弗洛里安·费尔德豪斯(Florian Feldhaus)

我想将PSCustomObjects转换为自定义类型。强制转换确实适用于简单类型,但是如果我在类型定义中使用例如DateTime,则无法使用。从HashTable强制转换为自定义类型确实可行。为什么从PSCustomObject进行投射无法正常工作?

这是一个例子:

Add-Type @"
using System;
public struct Test {
    public DateTime date;
}
"@

$Properties = @{date=(Get-Date)}
$CustomObject = New-Object -TypeName PSCustomObject -Property $Properties

# Returns correct date:
$TestObjectCastFromProperties = [Test]$Properties
$TestObjectCastFromProperties
$TestObjectCastFromProperties.GetType()

# Returns wrong date
$TestObjectCastFromCustomObject = [Test]$CustomObject
$TestObjectCastFromCustomObject
$TestObjectCastFromCustomObject.GetType()
马丁·布兰德尔

我不能告诉你为什么这行不通。甚至显式转换也会失败:

[System.Management.Automation.LanguagePrimitives]::ConvertPSObjectToType(
    $CustomObject, [test], $true, [cultureinfo]::InvariantCulture, $false)

输出:

date               
----               
01.01.0001 00:00:00

但是,您可以使用手工函数将a转换PSCustomObjectType

function Cast-CustomObject
{
    Param
    (
        [PsCustomObject]$obj,
        [Type]$castType
    )
    $properties = ($obj.PSObject.Properties | % { @{$_.Name = $_.Value}})
    [System.Management.Automation.LanguagePrimitives]::ConvertTo($properties, $castType)
}

用法:

Cast-CustomObject -obj $CustomObject -castType ([Test])

输出:

date               
----               
06.07.2016 08:52:01

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在PowerShell中使用DateTime将PSCustomObjects转换为自定义类型会失败?

来自分类Dev

如果DateTime.Parse失败,则转换为自定义DateTime类型

来自分类Dev

在Android数据绑定中使用@BindingConversion将“自定义转换”放在哪里,为什么?

来自分类Dev

为什么使用numpy.ndarray.astype将numpy.ndarray转换为自定义数据类型会使我的数据倍增?

来自分类Dev

Postgres将数组转换为自定义类型

来自分类Dev

无法使用新的Firebase将类型'__NSDictionaryM'的值强制转换为自定义用户类

来自分类Dev

在Android中使用iText库将图像转换为PDF时,为什么会裁剪图像

来自分类Dev

使用BeanUtils自定义将XMLGregorianCalendar转换为Date

来自分类Dev

使用 javascript 将 innerHTML 转换为自定义 json

来自分类Dev

为什么在Braintree中使用自定义字段?

来自分类Dev

为什么在Spark Shell中使用自定义案例类会导致序列化错误?

来自分类Dev

为什么我的自定义帖子类型不使用我的自定义模板?

来自分类Dev

XGBoost自定义评估函数导致“无法将类型强制转换为类型的向量”

来自分类Dev

为什么克隆我的自定义类型会导致&T而不是T?

来自分类Dev

为什么会检测到我的自定义 spaCy 实体类型?

来自分类Dev

在ColumnTransformer中使用时,为什么我的sklearn自定义转换器不保存属性?

来自分类Dev

为什么Swift类型系统会尝试将类型转换为错误的预期参数

来自分类Dev

为什么这种自定义类型约束错误消息的尝试失败?

来自分类Dev

Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

来自分类Dev

为什么将varchar值“ This is full”转换为数据类型int时转换失败?

来自分类Dev

Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

来自分类Dev

将DateTime条目列表转换为自定义摘要列表

来自分类Dev

为什么对于具有扩展转换的自定义类型,Assert.AreEqual只会在一个方向上失败?

来自分类Dev

无法将类型'System.Web.UI.CompiledTemplateBuilder'隐式转换为自定义ITemplate

来自分类Dev

将字符串切片转换为自定义类型的切片

来自分类Dev

如何将Fsharp中的自定义类型转换为JSON字符串?

来自分类Dev

我如何轻松地将json转换为此类自定义类型的ArrayList?

来自分类Dev

如何将查询结果中的对象转换为自定义类型

来自分类Dev

如何将字符串转换为自定义数据类型

Related 相关文章

  1. 1

    为什么在PowerShell中使用DateTime将PSCustomObjects转换为自定义类型会失败?

  2. 2

    如果DateTime.Parse失败,则转换为自定义DateTime类型

  3. 3

    在Android数据绑定中使用@BindingConversion将“自定义转换”放在哪里,为什么?

  4. 4

    为什么使用numpy.ndarray.astype将numpy.ndarray转换为自定义数据类型会使我的数据倍增?

  5. 5

    Postgres将数组转换为自定义类型

  6. 6

    无法使用新的Firebase将类型'__NSDictionaryM'的值强制转换为自定义用户类

  7. 7

    在Android中使用iText库将图像转换为PDF时,为什么会裁剪图像

  8. 8

    使用BeanUtils自定义将XMLGregorianCalendar转换为Date

  9. 9

    使用 javascript 将 innerHTML 转换为自定义 json

  10. 10

    为什么在Braintree中使用自定义字段?

  11. 11

    为什么在Spark Shell中使用自定义案例类会导致序列化错误?

  12. 12

    为什么我的自定义帖子类型不使用我的自定义模板?

  13. 13

    XGBoost自定义评估函数导致“无法将类型强制转换为类型的向量”

  14. 14

    为什么克隆我的自定义类型会导致&T而不是T?

  15. 15

    为什么会检测到我的自定义 spaCy 实体类型?

  16. 16

    在ColumnTransformer中使用时,为什么我的sklearn自定义转换器不保存属性?

  17. 17

    为什么Swift类型系统会尝试将类型转换为错误的预期参数

  18. 18

    为什么这种自定义类型约束错误消息的尝试失败?

  19. 19

    Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

  20. 20

    为什么将varchar值“ This is full”转换为数据类型int时转换失败?

  21. 21

    Laravel为什么说“将nvarchar值'[]'转换为数据类型int时转换失败”

  22. 22

    将DateTime条目列表转换为自定义摘要列表

  23. 23

    为什么对于具有扩展转换的自定义类型,Assert.AreEqual只会在一个方向上失败?

  24. 24

    无法将类型'System.Web.UI.CompiledTemplateBuilder'隐式转换为自定义ITemplate

  25. 25

    将字符串切片转换为自定义类型的切片

  26. 26

    如何将Fsharp中的自定义类型转换为JSON字符串?

  27. 27

    我如何轻松地将json转换为此类自定义类型的ArrayList?

  28. 28

    如何将查询结果中的对象转换为自定义类型

  29. 29

    如何将字符串转换为自定义数据类型

热门标签

归档