Como ler propriedades preguiçosas usando código gerenciado

Para ler uma propriedade preguiçosa de um objeto do Gerenciador de Configurações retornado em uma consulta, você obtém a instância do objeto, que recupera todas as propriedades de objeto lentas do provedor SMS.

Observação

Se você souber o caminho completo para o objeto WMI, uma chamada para o método GetInstance retornará o objeto WMI junto com quaisquer propriedades preguiçosas. Para obter mais informações, consulte Como ler um objeto do Gerenciador de Configurações usando código gerenciado.

Para obter mais informações, consulte Propriedades lentas do Gerenciador de Configurações.

Para ler propriedades preguiçosas

  1. Configure uma conexão com o provedor de SMS. Para obter mais informações, consulte Como se conectar a um provedor SMS no Gerenciador de Configurações usando código gerenciado.

  2. Use o objeto QueryProcessor para consultar objetos do Gerenciador de Configurações.

  3. Iterar pelos resultados da consulta.

  4. Usando o WqlConnectionManager obtido na etapa um, chame GetInstance para obter o objeto IResultObject para cada objeto consultado do qual você deseja obter propriedades lentas.

Exemplo

O exemplo de código C# a seguir consulta todos os objetos SMS_Collection e exibe nomes de regra obtidos da CollectionRules propriedade lazy.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando trechos de código do Gerenciador de Configurações.

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

Este método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection WqlConnectionManager Uma conexão válida com o provedor de SMS.

Compilando o código

Namespaces

System

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

As exceções do Gerenciador de Configurações que podem ser geradas são SmsConnectionException e SmsQueryException. Eles podem ser capturados junto com SmsException.

Confira também

Visão geral de objetos

Propriedades preguiçosas do Gerenciador de Configurações

Como chamar um método de classe de objeto do Gerenciador de Configurações usando código gerenciado

Como se conectar a um provedor do Gerenciador de Configurações usando código gerenciado

Como criar um objeto do Gerenciador de Configurações usando código gerenciado

Como modificar um objeto do Gerenciador de Configurações usando código gerenciado

Como executar uma consulta assíncrona do Gerenciador de Configurações usando código gerenciado

Como executar uma consulta síncrona do Gerenciador de Configurações usando código gerenciado

Como ler um objeto do Gerenciador de Configurações usando código gerenciado