Come leggere le proprietà differite tramite codice gestito

Per leggere una proprietà lazy da un oggetto di Gestione configurazione restituito in una query, ottieni l'istanza dell'oggetto, che recupera tutte le proprietà dell'oggetto lazy dal provider SMS.

Nota

Se si conosce il percorso completo dell'oggetto WMI, una chiamata al metodo GetInstance restituisce l'oggetto WMI insieme a qualsiasi proprietà lazy. Per altre informazioni, vedere Come leggere un oggetto di Gestione configurazione usando codice gestito.

Per altre informazioni, vedere Proprietà differite di Gestione configurazione.

Per leggere le proprietà pigre

  1. Configurare una connessione al provider SMS. Per altre informazioni, vedere Come connettersi a un provider SMS in Gestione configurazione usando codice gestito.

  2. Usare l'oggetto QueryProcessor per eseguire query sugli oggetti di Gestione configurazione.

  3. Scorrere i risultati della query.

  4. Utilizzando WqlConnectionManager ottenuto nel passaggio uno, chiamare GetInstance per ottenere l'oggetto IResultObject per ogni oggetto sottoposto a query da cui si vogliono ottenere le proprietà lazy.

Esempio

Nell'esempio di codice C# seguente viene eseguita una query per tutti gli oggetti SMS_Collection e quindi vengono visualizzati i nomi delle CollectionRules regole ottenuti dalla proprietà lazy.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice di Gestione configurazione.

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;
    }
}

Questo metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
connection WqlConnectionManager Una connessione valida al provider SMS.

Compilazione del codice

Spazi dei nomi

Sistema

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagementManagementProvider

Microsoft.ConfigurationManagementManagementProvider.WqlQueryEngine

Assembly

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmazione efficiente

Le eccezioni di Gestione configurazione che possono essere generate sono SmsConnectionException e SmsQueryException. Questi possono essere intercettati insieme a SmsException.

Vedere anche

Panoramica sugli oggetti

Gestione configurazione proprietà pigre

Come chiamare un metodo della classe di oggetti di Gestione configurazione tramite codice gestito

Come connettersi a un provider di Gestione configurazione tramite codice gestito

Come creare un oggetto di Gestione configurazione tramite codice gestito

Come modificare un oggetto di Gestione configurazione tramite codice gestito

Come eseguire una query asincrona di Gestione configurazione tramite codice gestito

Come eseguire una query sincrona di Gestione configurazione tramite codice gestito

Come leggere un oggetto di Gestione configurazione tramite codice gestito