将 Powershell Object[] 传递给 C# 方法的最佳方法

时间:2021-01-26 20:25:53

标签: c# powershell unit-testing mstest

我有一个结果对象,它是从外部 API 中提取的 PowerShell Object[] 的集合。

PowerShell Object[21] that is returned from an external API

目前,我使用以下 PowerShell 代码测试属性 TimeStampUtc 是否存在:

$property = $dataSet | Get-Member -Name TimeStampUtc
if($null -ne $property -and $property.Definition -match 'datetime')
{
    # Process code here
}

我们正在尝试将我们的一些 PowerShell 逻辑迁移到 C# 中,以便它更具可移植性,但我不确定将结果对象传递到 C# 中的类型。

public string CreateLineChart(object[] dataSet)
{
    if (dataSet.GetType().GetProperty("TimeStampUtc") != null)
    {
        // Process code here
    }

有没有人知道传递给 C# 方法的最佳类型并且仍然能够测试属性并提取值?

是否也可以在 C# 中创建一个 PowerShell Object[] 以便我可以测试从 C# 单元测试中传递相同的值?如果我尝试传递 C# 对象,反射总是将其视为我使用 ExpandoObject 创建它的类型。

1 个答案:

答案 0 :(得分:0)

在与我们的一些团队成员深入了解后,我们意识到在上游代码中我们创建了一个 PSObject 来存储数据。我们将更改它以使用 Dictionary 并简化实现。