您如何编写一个进程内 WMI 提供程序作为用 .NET 编写的 Windows 服务的一部分?
我编写了一个将解耦托管模型用作独立应用程序的提供程序,但无法弄清楚如何获得使用 Hosting Model = ManagementHostingModel.NetworkService 工作的 Windows 服务。
这是我正在使用的提供者类型:
[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 类时,都会抛出一些奇怪的异常。
似乎必须有一些非常简单的东西我忽略了。