Программно перечислите классы WMI и их свойства

Недавно я написал небольшую библиотеку с открытым исходным кодом, которая позволяет быстро и легко десериализовать словари в объекты Swift: https://github.com/isair/JSONHelper

Использование это, десериализация данных становится такой же простой, как это:

var myInstance = MyClass(data: jsonDictionary)

или

myInstance <-- jsonDictionary

И модели должны выглядеть только так:

struct SomeObjectType: Deserializable {
    var someProperty: Int?
    var someOtherProperty: AnotherObjectType?
    var yetAnotherProperty: [YetAnotherObjectType]?

    init(data: [String: AnyObject]) {
        someProperty <-- data["some_key"]
        someOtherProperty <-- data["some_other_key"]
        yetAnotherProperty <-- data["yet_another_key"]
    }
}

Что в вашем случае было бы:

struct Person: Deserializable {
    var name: String?
    var email: String?
    var password: String?

    init(data: [String: AnyObject]) {
        name <-- data["name"]
        email <-- data["email"]
        password <-- data["password"]
    }
}

7
задан Jakub Šturc 18 May 2009 в 09:40
поделиться

2 ответа

Я полагаю, что это - то, что Вы хотите.

Создатель кода WMI

Часть этой изящной утилиты позволяет Вам просматривать пространства имен/классы/свойства на локальных и удаленных ПК, не говоря уже о генерировании кода WMI в VBScript/C#/VB на лету. Очень полезный.

Кроме того, исходный код, используемый для создания утилиты, включен в загрузку, которая могла обеспечить ссылку, если бы Вы хотели создать свой собственный браузер как интерфейс.

5
ответ дан 7 December 2019 в 07:53
поделиться

Эта страница MSDN идет посредством перечисления доступных классов: Как к: Перечислите Классы в Пространстве имен WMI

для получения свойств от класса:

ManagementPath l_Path = new ManagementPath(l_className);
ManagementClass l_Class = new ManagementClass(myScope, l_ManagementPath, null);
foreach (PropertyData l_PropertyData in l_Class.Properties)
{
    string l_type = l_PropertyData.Type.ToString());
    int l_length = Convert.ToInt32(l_PropertyData.Qualifiers["maxlen"].Value);           
}
2
ответ дан 7 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: