草庐IT

WMI_Class

全部标签

c# - 通过 WMI 确定网络适配器类型

我正在使用WMI(Win32_NetworkAdapter)并尝试获取连接的有线或无线物理网络适配器的详细信息,并避免使用虚拟适配器等。阅读thisarticle它解释说您必须对WMI进行一些巧妙的查询以消除虚拟适配器并尝试仅返回真实的物理适配器。阅读thispost它解释说,您可以比较网络适配器“描述”中的文本,看它是否包含“无线”、“802.11”或“WLAN”,如果包含,则很可能该适配器是无线适配器。随着今天的.Net版本和其他进步,这些真的是在WindowsXP+上确定网络适配器是有线还是无线并且不是来自VM软件或类似软件的虚拟适配器的仅有的两种方法吗?如果不是,请解释。

c# - 为什么 WMI 查询有时这么慢?

我在.Net中使用System.Management命名空间对远程服务器执行各种WMI查询。在我的日志中,我可以看到有时查询需要30或40秒才能完成,而有时查询会在不到一秒内完成。当我看到这些缓慢的查询时,我尝试使用wbemtest连接到盒子,但它总是快速连接并执行查询。有什么想法、指示、建议吗?在反射器中查看System.Management.ManagementScope时,我确实注意到它似乎泄漏了IWbemServices指针。看起来这是一个COM接口(interface),需要对其调用Release(Marshal.ReleaseComObject())。我不确定这是否相关。在

c# - IEnumerable<IMyInterface> 隐式来自 Class[] 但不是来自 Struct[]。为什么?

给定:publicinterfaceIMyInterface{}publicclassMyClass:IMyInterface{publicMyClass(){}}publicstructMyStruct:IMyInterface{privateint_myField;publicMyStruct(intmyField){_myField=myField;}}为什么我可以写:IEnumerablemyClassImps=new[]{newMyClass(),newMyClass(),newMyClass()};但不是:IEnumerablemyStructImps=new[]{newM

c# - 我可以在 C# 中使用 "class"类型吗?

我想知道是否有可能做某事。我有一个读取xml文件并根据文件内容向表单添加控件的函数。像这样的xml节点将创建它:Automatic如果我在编辑模式下添加了控件,我有一个功能可以将控件保存回xml文件。它正在工作,但我想知道是否有更简单的方法。目前,我有看起来像这样的代码来创建每个控件的实例:switch(xmlchild.Name){//Createanewcontrolwhosetypeisspecified.case"Button":c=newButton();break;case"Label":c=newLabel();break;default:c=null;break;}但是

c# - 我的类(class)应该订阅自己的公共(public)事件吗?

我正在使用C#3.0。按照我的标准事件模式:publiceventEventHandlerSomeEventHappens;protectedvirtualvoidOnSomeEventHappens(EventArgse){if(SomeEventHappens!=null){SomeEventHappens(this,e);}}privateobject_someProperty;publicobjectSomeProperty{get{return_someProperty;}privateset{if(_someProperty==value){return;}OnSomeEv

c# - 在单线程应用程序中调用 WMI 函数时的 DisconnectedContext MDA

我在VS2005中用C#、.NET3.0编写了一个应用程序,具有监视各种可移动驱动器(USB闪存盘、CD-ROM等)插入/弹出的功能。我不想使用WMI,因为它有时可能不明确(例如,它可以为单个USB驱动器产生多个插入事件),所以我只是覆盖了我的主窗体的WndProc以捕获WM_DEVICECHANGE消息,如建议的那样here.昨天我遇到了一个问题,结果发现无论如何我都必须使用WMI来检索一些模糊的磁盘详细信息,例如序列号。事实证明,从WndProc内部调用WMI例程会引发DisconnectedContextMDA。经过一些挖掘之后,我最终找到了一个尴尬的解决方法。代码如下://th

c# - 使用 WMI 识别哪个设备导致了 Win32_DeviceChangeEvent

我一直在编写一些代码来检测USB设备的添加和移除,并且我使用以下WMI代码来注册设备更改通知:watcher=newManagementEventWatcher(query);watcher.EventArrived+=newEventArrivedEventHandler(DeviceChangeEventReceived);watcher.Start();这是处理程序代码:voidDeviceChangeEventReceived(objectsender,EventArrivedEventArgse){foreach(PropertyDatapdine.NewEvent.Prop

c# - C# 3.0 中 "special class"枚举的泛型类型约束是否有解决方法?

这个问题在这里已经有了答案:Anyoneknowagoodworkaroundforthelackofanenumgenericconstraint?(12个答案)关闭9年前。Update:SeethebottomofthisquestionforaC#workaround.你好,考虑以下扩展方法:publicstaticboolHasFlags(thisTvalue,Tflags)whereT:System.Enum{//...}如您所知,这将在编译时抛出错误,因为通常不允许类从System.Enum继承。问题在于使用enum关键字指定的任何枚举实际上都继承自System.Enum,

c# - 不能同时指定约束类和 0​​x104567910 或 'class' 约束

我正在尝试解决mockingissue通过创建IDbSet的自定义模拟。自定义模拟:publicclassDbSetMock:IDbSet{/*hiddenallotherimplementedmethods/properties*/publicTDerivedEntityCreate()whereTDerivedEntity:class,Tenant{thrownewNotImplementedException();}}create方法给出了一个构建错误,我不知道如何解决:cannotspecifybothaconstraintclassandthe'class'or'struct

c# - Class B 继承自 ClassA 时,如何将 List<Class> 转换为 List<Class>?

我将json字符串反序列化为List现在我想把它转换到List在我把它从BindModel方法。我需要转换,因为这些方法期望得到List.为什么我在转换时出错?毕竟,ClassB继承自ClassA.我该怎么办?附言这个问题是从thispost扩展而来的.在线newDataContractJsonSerializer(typeof(List));而不是List该类型将在运行时构建。publicoverrideobjectBindModel(...){varserializer=newDataContractJsonSerializer(typeof(List));MemoryStream