Compartilhar via


Como ler propriedades preguiçosas usando código gerenciado

Para ler uma propriedade preguiçosa de um objeto Configuration Manager retornado em uma consulta, você obtém a instância do objeto, que recupera quaisquer propriedades de objeto preguiçoso do Provedor de 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 Configuration Manager usando código gerenciado.

Para obter mais informações, consulte Configuration Manager Propriedades Preguiçosas.

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 de SMS em Configuration Manager usando código gerenciado.

  2. Use o objeto QueryProcessor para consultar objetos Configuration Manager.

  3. Iterar por meio dos resultados da consulta.

  4. Usando o WqlConnectionManager obtido na primeira etapa, chame GetInstance para obter o objeto IResultObject para cada objeto consultado do qual você deseja obter propriedades preguiçosas.

Exemplo

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

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

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 Configuration Manager que podem ser geradas são SmsConnectionException e SmsQueryException. Elas podem ser capturadas junto com SmsException.

Confira também

Visão geral dos objetosConfiguration Manager Propriedades Preguiçosas
Como chamar um método de classe de objeto Configuration Manager usando código gerenciado
Como se conectar a um provedor de Configuration Manager usando código gerenciado
Como criar um objeto Configuration Manager usando código gerenciado
Como modificar um objeto Configuration Manager usando código gerenciado
Como executar uma consulta de Configuration Manager assíncrona usando código gerenciado
Como executar uma consulta de Configuration Manager síncrona usando código gerenciado
Como ler um objeto Configuration Manager usando código gerenciado