小编Dej*_*jan的帖子

WMI VBScript与C#

我正在尝试获取有关本地计算机上安装的软件的信息(一个是Windows 7和其他XP SP3),我可以使用VBScript,但不能使用C#.

这是VBScript代码:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
    ("Select * from Win32_Product")

For Each objSoftware in colSoftware
    Wscript.Echo "Name: " & objSoftware.Name
    Wscript.Echo "Version: " & objSoftware.Version
Next
Run Code Online (Sandbox Code Playgroud)

这是C#代码:

string queryProd = "SELECT * FROM Win32_Product";                
ObjectQuery oQuery = new ObjectQuery(queryProd);
ManagementObjectSearcher searcherProd = new ManagementObjectSearcher(oQuery);
ManagementObjectCollection resultCollection = searcherProd.Get();

foreach (ManagementObject prodVar in resultCollection)
{
    Console.WriteLine("Product Name: {0}, Version: {1}.",
        (prodVar["Name"] == null) …
Run Code Online (Sandbox Code Playgroud)

c# vbscript wmi

2
推荐指数
1
解决办法
3776
查看次数

在IList <T>中使用Type.GetType(string)

由于我不能对这篇文章发表任何评论(只发一个答案),我会发一个新问题.
我按照上述帖子中的说明进行操作,但代码产生错误.
代码:

Type t = Type.GetType(className);
Type listType = typeof(List<>).MakeGenericType(t);
IList list = (IList)Activator.CreateInstance(listType);
Run Code Online (Sandbox Code Playgroud)

错误:

使用泛型类型'System.Collections.Generic.IList'需要'1'类型参数

很明显,我不能说IList没有任何类型,所以我想知道上述帖子的答案究竟是如何起作用的.

提前致谢.

c# ilist gettype

2
推荐指数
1
解决办法
3168
查看次数

标签 统计

c# ×2

gettype ×1

ilist ×1

vbscript ×1

wmi ×1