2
如何在.NET中编写Windows进程的过程中编写进程内WMI提供程序?.NET中用于Windows服务的进程内WMI提供程序
我已经编写了一个使用解耦主机模型作为独立应用程序的提供程序,但无法弄清楚如何获取使用Hosting Model = ManagementHostingModel.NetworkService的Windows Service。
这是我使用的供应商类型:
[ManagementEntity]
public class Stuff
{
private readonly string _id;
public Stuff(string id)
{
_id = id;
}
[ManagementKey]
public string Id
{
get { return _id; }
}
[ManagementProbe]
public DateTime Time
{
get { return DateTime.UtcNow; }
}
[ManagementEnumerator]
public static IEnumerable Enumerate()
{
for (int i = 0; i < 5; i++)
{
yield return new Stuff(i.ToString());
}
}
}
我哪一个寄存器中:
InstrumentationManager.RegisterType(typeof (Stuff));
每次我试着访问WMI类试图读取属性值时, ,我只是得到一些怪异的抛出异常。
这似乎是一定有一些非常简单的东西,我忽略了。
如何获得有关您的特定服务提供商的信息?我发现的所有例子都提供了罐头数据(比如`Stuff`)或者系统数据(比如`DateTime.UtcNow`,或者像正在运行的进程列表)。如果耦合提供者正在被WMI主机实例化并运行,那么它是如何获得特定于应用程序的数据的? – Eric 2012-01-12 04:15:12