Objeto SWbemNamedValueSet
Um objeto SWbemNamedValueSet é uma coleção de objetos SWbemNamedValue. Os métodos e as propriedades de SWbemNamedValueSet são usados principalmente para enviar mais informações aos provedores ao enviar determinadas chamadas para o WMI. Todas as chamadas em SWbemServices e algumas chamadas em SWbemObject assumem um parâmetro opcional que é um objeto desse tipo. Um cliente pode adicionar informações a um objeto SWbemNamedValueSet e enviar o objeto SWbemNamedValueSet com a chamada como um dos parâmetros. Esse objeto pode ser criado pela chamada CreateObject do VBScript.
Para obter mais informações, consulte Acessar uma coleção.
Observação
Importante – se possível, não use esse mecanismo, pois ele pode interromper o modelo de acesso uniforme que é a base do WMI. Se um provedor usar esse mecanismo, é importante que ele seja usado com a maior moderação possível. Se um provedor exigir uma grande quantidade de informações de contexto altamente específicas para responder a uma solicitação, todos os clientes deverão ser codificados para fornecer essas informações. Esse mecanismo permite que você acesse tais provedores, se necessário.
Um objeto SWbemNamedValueSet é uma coleção de elementos SWbemNamedValue. Esses itens são adicionados à coleção usando o método SWbemNamedValueSet.Add. Eles são removidos usando o método SWbemNamedValueSet.Remove e recuperados usando o método SWbemNamedValueSet.Item. Você pode acessar os métodos para preencher as informações de contexto exigidas por um provedor dinâmico. Depois de chamar um dos métodos SWbemServices, você poderá reutilizar o objeto SWbemNamedValueSet para outra chamada.
O provedor subjacente determina as informações contidas em um objeto SWbemNamedValueSet. O WMI não usa as informações, mas simplesmente as encaminha para o provedor. Os provedores precisam publicar as informações de contexto necessárias para solicitações de serviço.
Membros
O objeto SWbemNamedValueSet tem estes tipos de membros:
Métodos
O objeto SWbemNamedValueSet tem esses métodos.
Método | Descrição |
---|---|
Add | Adiciona um objeto SWbemNamedValue à coleção. |
Clone | Faz uma cópia dessa coleção SWbemNamedValueSet. |
DeleteAll | Remove todos os itens da coleção, tornando o objeto SWbemNamedValueSet vazio. |
Item | Recupera um objeto SWbemNamedValue da coleção. Esse é o método padrão do objeto . |
Remove | Remove um objeto SWbemNamedValue da coleção. |
Propriedades
O objeto SWbemNamedValueSet tem essas propriedades.
Propriedade | Tipo de acesso | Descrição |
---|---|---|
Contagem |
Somente leitura |
Número de itens na coleção. |
Exemplos
O exemplo de VBScript a seguir demonstra a manipulação de conjuntos de valores nomeados, caso o valor nomeado seja um tipo de matriz.
Set Context = CreateObject("WbemScripting.SWbemNamedValueSet")
On Error Resume Next
Context.Add "n1", Array (1, 2, 3)
str = "The initial value of n1 is {"
for x=LBound(Context("n1")) to UBound(Context("n1"))
str = str & Context("n1")(x)
if x <> UBound(Context("n1")) Then
str = str & ", "
End if
next
str = str & "}"
WScript.Echo str
WScript.Echo ""
' report the value of an element of the context value
v = Context("n1")
WScript.Echo "By indirection the first element of n1 has value:",v(0)
' report the value directly
WScript.Echo "By direct access the first element of n1 has value:", Context("n1")(0)
' set the value of a single named value element
Context("n1")(1) = 11
WScript.Echo "After direct assignment the first element of n1 has value:", Context("n1")(1)
' set the value of a single named value element
Set v = Context("n1")
v(1) = 345
WScript.Echo "After indirect assignment the first element of n1 has value:", Context("n1")(1)
' set the value of an entire context value
Context("n1") = Array (5, 34, 178871)
WScript.Echo "After direct array assignment the first element of n1 has value:", Context("n1")(1)
str = "After direct assignment the entire value of n1 is {"
for x=LBound(Context("n1")) to UBound(Context("n1"))
str = str & Context("n1")(x)
if x <> UBound(Context("n1")) Then
str = str & ", "
End if
next
str = str & "}"
WScript.Echo str
if Err <> 0 Then
WScript.Echo Err.Description
Err.Clear
End if
O exemplo de Perl a seguir demonstra a manipulação de conjuntos de valores nomeados, caso o valor nomeado seja um tipo de matriz.
use strict;
use Win32::OLE;
my ( $Context, $str, $x, @v);
eval {$Context = new Win32::OLE 'WbemScripting.SWbemNamedValueSet'; };
unless($@)
{
$Context->Add("n1", [1, 2, 3]);
$str = "The initial value of n1 is {";
for ($x = 0; $x < @{$Context->Item("n1")->{Value}}; $x++)
{
$str = $str.@{$Context->Item("n1")->{Value}}[$x];
if ($x != (@{$Context->Item("n1")->{Value}}) - 1 )
{
$str = $str.", ";
}
}
$str = $str."}";
print $str,"\n\n";
# report the value of an element of the context value
@v = @{$Context->Item("n1")->{Value}};
print "By indirection the first element of n1 has value:", $v[0], "\n";
# report the value directly
print "By direct access the first element of n1 has value:", @{$Context->Item("n1")->{Value}}[0], "\n";
# set the value of a single named value element
@{$Context->Item("n1")->{Value}}[1] = 11;
print "After direct assignment the first element of n1 has value:",
@{$Context->Item("n1")->{Value}}[1], "\n";
# set the value of a single named value element
@v = @{$Context->Item("n1")->{Value}};
$v[1] = 345;
print "After indirect assignment the first element of n1 has value:",
@{$Context->Item("n1")->{Value}}[1], "\n";
# set the value of an entire context value
$Context->Item("n1")->{Value} = [5, 34, 178871];
print "After direct array assignment the first element of n1 has value:",
@{$Context->Item("n1")->{Value}}[1], "\n";
$str = "After direct assignment the entire value of n1 is {";
for ($x = 0; $x < @{$Context->Item("n1")->{Value}}; $x++)
{
$str = $str.@{$Context->Item("n1")->{Value}}[$x];
if ($x != (@{$Context->Item("n1")->{Value}}) - 1 )
{
$str = $str.", ";
}
}
$str = $str."}";
print $str,"\n";
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows Vista |
Servidor mínimo com suporte |
Windows Server 2008 |
Cabeçalho |
|
Biblioteca de tipos |
|
DLL |
|
CLSID |
CLSID_SWbemNamedValueSet |
IID |
IID_ISWbemNamedValueSet |