首页 > 编程 > .NET > 正文

如何在.NET中处理WMI数据

2024-07-10 13:08:04
字体:
来源:转载
供稿:网友
如何在.net中处理wmi数据
--------------------------------------------------------------------------------


学习当wmi属性与.net数据类型不相符时,如何进行处理。
by ken getz
备注:在2月12日(周三)于san francisco举办的vbits大会上,ken getz发布了主题为“fill the gaps with wmi”和“save yourself with .net serialization”的演讲。本文的技巧就选自其中。

当wmi属性与.net数据类型不相符时
当wmi(windows management instrumentation)的设计者在创建他们的类时,并没有考虑到.net程序员。你会发现,许多wmi属性与.net数据类型都不直接相符。例如,虽然wmi支持无符号整数类型,但vb.net并不支持。有时侯,你可以用.net提供的结构进行仿造。在其它情况下,你需要关闭vb.net中的option strict来处理wmi数据。如果你发现你的代码在option strict被打开的情况下不能运行,你可以将“故障”代码隔离起来,单独放在一个模块中,在该模块的顶部,将option strict设置为off。

在串行化一个对象时排除一个类成员
在串行化一个对象时,serializer将所有与你的对象相关的值(即使是私有的值)都保存在输出流中。因为.net的serializer的目的就是让你保存和恢复一个对象或一组对象的整个状态,因此serializer保存所有的数据(而不仅仅是公用数据(public data))是很至关重要的。如果你想在串行化对象时明确地排除任何类成员,那么就将nonserializable属性添加到特定的成员上。(该技巧只适用于soapformatter和binaryformatter类——xmlformatter类不保存专用数据(private data),因为它的目的是串行化可以用于xml web services的数据,其中专用数据是不起任何作用的。)



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表