【发布时间】:2021-01-26 20:25:53
【问题描述】:
我有一个结果对象,它是从外部 API 提取的 PowerShell Object[] 的集合。
目前,我使用以下 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。
【问题讨论】:
-
阅读
dynamic类型。它与object基本相同,不同之处在于,与Powershell 一样,在运行时查询对象以获取属性或方法,如果存在,则调用它。脚本语言和dynamic非常吻合
标签: c# powershell unit-testing mstest