Lazy eigenschappen lezen met behulp van beheerde code

Als u een lazy eigenschap wilt lezen uit een Configuration Manager-object dat wordt geretourneerd in een query, krijgt u het objectexemplaar, dat eventuele lazy object-eigenschappen ophaalt bij de sms-provider.

Opmerking

Als u het volledige pad naar het WMI-object kent, wordt via een aanroep van de methode GetInstance het WMI-object geretourneerd, samen met eventuele luie eigenschappen. Zie Een Configuration Manager object lezen met behulp van beheerde code.

Zie Luie eigenschappen van Configuration Manager voor meer informatie.

Informatie over luie eigenschappen

  1. Stel een verbinding in met de sms-provider. Zie voor meer informatie Verbinding maken met een sms-provider in Configuration Manager met behulp van beheerde code.

  2. Gebruik het QueryProcessor-object om een query uit te voeren op Configuration Manager-objecten.

  3. Herhaal de queryresultaten.

  4. Met behulp van de WqlConnectionManager die u in stap één verkrijgt, roept u GetInstance aan om het IResultObject-object op te halen voor elk gequeryd object waarvan u luie eigenschappen wilt ophalen.

Voorbeeld

De volgende C#-codevoorbeeldquery's voor alle SMS_Collection objecten en geeft vervolgens regelnamen weer die zijn verkregen uit de CollectionRules eigenschap Lazy.

Zie Codefragmenten van Configuration Manager aanroepen voor meer informatie over het aanroepen van de voorbeeldcode.

public void ReadLazyProperty(WqlConnectionManager connection)
{
    try
    {
        // Query all collections.
        IResultObject collections = connection.QueryProcessor.ExecuteQuery("Select * from SMS_Collection");
        foreach (IResultObject collection in collections)
        {
            // Get the collection object and lazy properties.
            collection.Get();

            Console.WriteLine(collection["Name"].StringValue);

            // Get the rules.
            List<IResultObject> rules = collection.GetArrayItems("CollectionRules");
            if (rules.Count == 0)
            {
                Console.WriteLine("No rules");
                Console.WriteLine();
                continue;
            }

            foreach (IResultObject rule in rules)
            {
                // Display rule names.
                Console.WriteLine("Rule name: " + rule["RuleName"].StringValue);
            }

            Console.WriteLine();
        }
    }
    catch (SmsQueryException ex)
    {
        Console.WriteLine("Failed to get collection. Error: " + ex.Message);
        throw;
    }
}

Deze voorbeeldmethode heeft de volgende parameters:

Parameter Type Beschrijving
connection WqlConnectionManager Een geldige verbinding met de sms-provider.

De code compileren

Naamruimten

Systeem

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

bijeenkomst

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuust programmeren

De uitzonderingen in Configuration Manager die kunnen worden verhoogd zijn SmsConnectionException en SmsQueryException. Deze kunnen samen met SmsException worden opgevangen.

Zie ook

Overzicht van objecten

Lazy eigenschappen van Configuration Manager

Een Configuration Manager-objectklassemethode aanroepen met behulp van beheerde code

Verbinding maken met een Configuration Manager-provider met behulp van beheerde code

Een Configuration Manager-object maken met behulp van beheerde code

Een Configuration Manager-object wijzigen met behulp van beheerde code

Een asynchrone Configuration Manager query uitvoeren met behulp van beheerde code

Een synchrone Configuration Manager-query uitvoeren met behulp van beheerde code

Een Configuration Manager-object lezen met behulp van beheerde code