Como ler e escrever para o ficheiro de controlo do site do gestor de configuração através da utilização do código gerido
Para escrever no ficheiro de controlo do site do Gestor de Configuração utilizando o fornecedor de SMS gerido, obtém o ficheiro de definição do site consultando o recurso ou componente necessário. Em seguida, atualize a propriedade incorporada, a lista de propriedades incorporada ou a lista de várias cordas, conforme necessário.
Nota
Também pode utilizar o gestor de ligação GetInstance para obter o recurso ou componente necessário.
O Gestor de Configuração gerido gere automaticamente a sessão de ligação ao ficheiro de controlo do site para si. Por isso, trata os objetos IResultObject devolvidos da consulta da mesma forma que trata os objetos IResultObject recuperados do Fornecedor de SMS.
Para ler e escrever para o ficheiro de controlo do site
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.
Utilize o método Desemplique do Gestor de Ligação ExecQuery ou GetInstance para obter o recurso de ficheiro de controlo do site ou o componente IResultObject.
Utilizando o iResultObject, atualize o ficheiro de controlo do site.
Utilize o objeto IResultObject Coloque o método para cometer as alterações.
Exemplo
O exemplo C# seguinte acede ao componente do agente cliente do ficheiro de controlo do site e cria uma lista de propriedades falsas, lista de propriedades e multi-cordas. Em seguida, remove as atualizações que foram feitas. O exemplo demonstra como consultar o ficheiro de controlo do site, fazer atualizações e comprometer alterações no ficheiro de controlo do site.
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 ReadWriteSCF(WqlConnectionManager connection,string siteCode)
{
try
{
// Query for the site's site control file client agent settings.
IResultObject resources =
connection.QueryProcessor.ExecuteQuery
("SELECT * FROM SMS_SCI_ClientComp WHERE ClientComponentName = 'Client Agent' AND SiteCode = '" +
siteCode + "'");
foreach (IResultObject resource in resources)
{
// Embedded Properties
Console.WriteLine("Embedded property");
Console.WriteLine("-----------------");
int value = 0;
string value1 = "";
string value2 = "";
// Write a dummy embedded property.
this.WriteScfEmbeddedProperty(resource, "Test", 10, "Hello", "World");
// Get the embedded property back and display the values.
if (this.GetScfEmbeddedProperty(resource, "Test", ref value, ref value1, ref value2))
{
Console.WriteLine("Value: " + value);
Console.WriteLine("Value1: " + value1);
Console.WriteLine("Value2: " + value2);
// Remove the dummy embedded property.
Dictionary<string, IResultObject> EmbeddedProperties = resource.EmbeddedProperties;
EmbeddedProperties.Remove("Test");
resource.EmbeddedProperties = EmbeddedProperties;
resource.Put();
// See if the dummy embedded property is still there.
if (this.GetScfEmbeddedProperty(resource, "Test", ref value, ref value1, ref value2))
{
Console.WriteLine("Test exists");
}
else
{
Console.WriteLine("Test does not exist");
}
}
else
{
Console.WriteLine("Property not found");
}
Console.WriteLine();
// Embedded property list.
Console.WriteLine("Embedded property list");
Console.WriteLine("----------------------");
// values contains the embedded property list.
ArrayList values = new ArrayList();
values.Add("Elephant");
values.Add("Giraffe");
// Write to the resource.
this.WriteScfEmbeddedPropertyList(resource, "Animals", values);
ArrayList retrievedValues;
// Get the embedded property list and display.
if (this.GetScfEmbeddedPropertyList(resource, "Animals", out retrievedValues))
{
foreach (string retrievedValue in retrievedValues)
{
Console.WriteLine(retrievedValue);
}
// Remove one of the entries.
retrievedValues.Remove("Elephant");
Console.WriteLine();
// Update the list.
this.WriteScfEmbeddedPropertyList(resource, "Animals", retrievedValues);
// Display the list again.
this.GetScfEmbeddedPropertyList(resource, "Animals", out retrievedValues);
foreach (string retrievedValue in retrievedValues)
{
Console.WriteLine(retrievedValue);
}
}
else
{
Console.WriteLine("None");
}
Console.WriteLine();
// RegMultiStringList.
Console.WriteLine("RegMultiStringList");
Console.WriteLine("------------------");
// valuesStrings is the RegMultiString List.
ArrayList valueStrings = new ArrayList();
valueStrings.Add("Tom");
valueStrings.Add("Harry");
this.WriteScfRegMultiStringList(resource, "Names", valueStrings);
ArrayList retrievedValuesStrings;
if (this.GetScfRegMultiStringList(resource, "Names", out retrievedValuesStrings))
{
foreach (string retrievedValue in retrievedValuesStrings)
{
Console.WriteLine(retrievedValue);
}
// Remove one of the entries.
retrievedValuesStrings.Remove("Tom");
Console.WriteLine();
// Update the list.
this.WriteScfRegMultiStringList(resource, "Names", retrievedValuesStrings);
// Display the list again.
this.GetScfRegMultiStringList(resource, "Names", out retrievedValuesStrings);
foreach (string retrievedValue in retrievedValuesStrings)
{
Console.WriteLine(retrievedValue);
}
}
else
{
Console.WriteLine("None");
}
}
}
catch (SmsException e)
{
Console.WriteLine("Failed: " + e.Message);
throw;
}
}
O método exemplo tem os seguintes parâmetros:
Parâmetro | Tipo | Description |
---|---|---|
connection |
- WqlConnectionManager |
Uma ligação válida ao Fornecedor de SMS. |
siteCode |
- String |
O código do site do site do Gestor de Configuração. |
A Compilar o Código
Espaços de nomes
Sistema
System.Collections.Generic
Sistema.Coleções
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
Fundamentos do fornecedor de SMS sobre o ficheiro de controlo do site do gestor de configuração
Como Ligação a um fornecedor de gestor de configuração usando código gerido
Como ler uma lista de propriedades incorporada do ficheiro de controlo do site do gestor de configuração
Objects overview (Descrição geral dos objetos)