Partilhar via


Como Ler Propriedades Lentas ao Utilizar o Código Gerido

Para ler uma propriedade preguiçosa de um objeto do Gestor de Configuração devolvido numa consulta, obtém-se a instância do objeto, que recupera quaisquer propriedades de objeto preguiçoso do Fornecedor SMS.

Nota

Se conhecer o caminho completo para o objeto WMI, uma chamada para o método GetInstance devolve o objeto WMI juntamente com quaisquer propriedades preguiçosas. Para obter mais informações, consulte Como ler um objeto do gestor de configuração utilizando o Código Gerido.

Para obter mais informações, consulte As Propriedades Preguiçosas do Gestor de Configuração.

Ler propriedades preguiçosas

  1. Configurar uma ligação com o Fornecedor DE SMS. Para obter mais informações, consulte Como Ligação a um Fornecedor de SMS no Gestor de Configuração utilizando o Código Gerido.

  2. Utilize o objeto Processo-Processamento de Consulta para consultar os objetos do Gestor de Configuração.

  3. Iterar através dos resultados da consulta.

  4. Utilizando o WqlConnectionManager que obtém no primeiro passo, ligue para o GetInstance para obter o objeto IResultObject para cada objeto consultado do qual pretende obter propriedades preguiçosas.

Exemplo

As seguintes consultas de exemplo de código C# para todos os objetos SMS_Collection e, em seguida, exibem nomes de regras obtidos a partir da CollectionRules propriedade preguiçosa.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.

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 Description
connection - WqlConnectionManager Uma ligação válida ao Fornecedor de SMS.

A Compilar o Código

Espaços de nomes

Sistema

System.Collections.Generic

System.ComponentModel

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação Robusta

As exceções do Gestor de Configuração que podem ser levantadas são SmsConnectionException e SmsQueryException. Estes podem ser apanhados juntamente com o SmsException.

Consulte também

Visão geral de objetos Gestor de Configuração Propriedades Preguiçosas
Como chamar um método de classe de objeto de gestor de configuração usando código gerido
Como Ligação a um fornecedor de gestor de configuração usando código gerido
Como criar um objeto de gestor de configuração usando código gerido
Como modificar um objeto de gestor de configuração utilizando código gerido
Como executar uma consulta de gestor de configuração assíncronea através da utilização de código gerido
Como executar uma consulta de gestor de configuração sincronizada através da utilização de código gerido
Como ler um objeto de gestor de configuração usando código gerido