如何把 object 类型转化为 List?

weixin_38067113 2018-01-02 01:52:51
    我通过
C# 调用 PowerShell
查询 Hyper-V
的虚拟机网络信息。但发现在查找网络信息时发现问题:
代码:

using System;
using System.Collections.ObjectModel;
using System.Management.Automation;

namespace HyperVSamples
{
    class Program
    {
        static void Main(string[] args)
        {
            Collection<PSObject> ps1 = PowerShell.Create().AddCommand("Get-VM").Invoke();
            var p = ps1[0].Members.Match("NetworkAdapters")[0].Value;
            Console.ReadLine();
        }
    }
}

数据结果:



问题:
   
由于变量 p
是 object
类型,导致我无法进一步抓取内部的属性值。
   
因此我尝试是否能将 p
的类型从 object
类型强制转化为 List<Microsoft.HyperV.PowerShell.VMNetworkAdapter>
类型,
但我发现我并不能找到  Microsoft.HyperV.PowerShell.VMNetworkAdapter
类,因此我找不到如何去类型转化的方法。
 
   
请问这个问题有什么解决方法吗?
 


...全文
21 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38106230 2018-01-05
  • 打赏
  • 举报
回复
Hi,
对于power shell 我不是很熟悉,你有把问题发到power shell那边吗?
>>获取到的p值是 object 类型
你的意思是指 [0].Value 是object 类型? 
weixin_38073293 2018-01-04
  • 打赏
  • 举报
回复
   你好
    我有尝试把PSObject 里面每个值都给遍历出来,但我不仅仅需要
BaseObject 的值,我需要 它内部的 NetworkAdapter[0] 内的所有属性值。
具体的数据如下:


我的问题就在于我通过
var p = ps1[0].Members.Match("NetworkAdapters")[0].Value;
获取到的p值是 object 类型,如果我不能转换成 List<> 的话,似乎我无法进一步获取内部的值。

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧