C# PSObject是否可以具有PSObject属性?
我有一个C Cmdlet,它与REST服务交互,将JSON反序列化为动态对象ExpandoObject。当expando传递给WriteObject时,它会作为字典写入管道,因此我将其转换为类似于这样的PSObject,以使其属性可供类似Select Object的人访问: 当我尝试从管道中选择projectTeam属性时,我得到一个字符串表示形式,无法选择该子对象的属性:C# PSObject是否可以具有PSObject属性?,c#,powershell,expandoobject,psobject,C#,Powershell,Expandoobject,Psobject,我有一个C Cmdlet,它与REST服务交互,将JSON反序列化为动态对象ExpandoObject。当expando传递给WriteObject时,它会作为字典写入管道,因此我将其转换为类似于这样的PSObject,以使其属性可供类似Select Object的人访问: 当我尝试从管道中选择projectTeam属性时,我得到一个字符串表示形式,无法选择该子对象的属性: projectTeam ----------- @{projectNumber=930617506804; team=ow
projectTeam
-----------
@{projectNumber=930617506804; team=owners}
@{projectNumber=930617506804; team=editors}
@{projectNumber=930617506804; team=viewers}
我想我希望能够选择或以其他方式导航对象层次结构。PSObject本质上是一组简单的名称-值对,还是可以表示对象层次结构?如果是这样,如何表示嵌套对象,使其属性可选择,还是有必要展平对象层次结构?projectTeam的值真的是字符串吗?它看起来像一个哈希表。您是否仔细阅读了代码以查看projectTeam键的值是否实际被解释为ExpandooObject?可能内部属性是普通的哈希表,因此kvp.Value is ExpandoObject将计算为false,然后递归将永远不会发生。@briantist我已经介绍过了,projectTeam确实正在转换为PSObject。对象转储中的语法是PSObject的ToString。当您说您试图从管道中选择属性时,您的意思是在Powershell中?你能发那个密码吗?
{
"kind": "storage#bucketAccessControl",
"role": "OWNER",
"projectTeam": {
"projectNumber": "930617506804",
"team": "owners"
},
"etag": "CAE="
}
projectTeam
-----------
@{projectNumber=930617506804; team=owners}
@{projectNumber=930617506804; team=editors}
@{projectNumber=930617506804; team=viewers}