Oggetto SWbemNamedValueSet

Un oggetto SWbemNamedValueSet è un insieme di oggetti SWbemNamedValue . I metodi e le proprietà di SWbemNamedValueSet vengono usati principalmente per inviare altre informazioni ai provider durante l'invio di determinate chiamate a WMI. Tutte le chiamate in SWbemServices e alcune chiamate in SWbemObject accettano un parametro facoltativo che è un oggetto di questo tipo. Un client può aggiungere informazioni a un oggetto SWbemNamedValueSet e inviare l'oggetto SWbemNamedValueSet con la chiamata come uno dei parametri. Questo oggetto può essere creato dalla chiamata CreateObject VBScript.

Per altre informazioni, vedere Accesso a una raccolta.

Nota

Importante: se possibile, non usare questo meccanismo perché può interrompere il modello di accesso uniforme che è la base di WMI. Se un provider usa questo meccanismo, è importante che questo meccanismo venga usato quanto più possibile. Se un provider richiede una grande quantità di informazioni di contesto altamente specifiche per rispondere a una richiesta, tutti i client devono essere codificati per fornire queste informazioni. Questo meccanismo consente di accedere a tali provider, se necessario.

Un oggetto SWbemNamedValueSet è una raccolta di elementi SWbemNamedValue . Questi elementi vengono aggiunti alla raccolta usando il metodo SWbemNamedValueSet.Add . Vengono rimossi usando il metodo SWbemNamedValueSet.Remove e recuperato usando il metodo SWbemNamedValueSet.Item . È possibile accedere ai metodi per compilare tutte le informazioni di contesto necessarie da un provider dinamico. Dopo aver chiamato uno dei metodi SWbemServices , è possibile riutilizzare l'oggetto SWbemNamedValueSet per un'altra chiamata.

Il provider sottostante determina le informazioni contenute in un oggetto SWbemNamedValueSet . WMI non usa le informazioni, ma lo inoltra semplicemente al provider. I provider devono pubblicare le informazioni di contesto necessarie per le richieste di servizio.

Membri

L'oggetto SWbemNamedValueSet include questi tipi di membri:

Metodi

L'oggetto SWbemNamedValueSet include questi metodi.

Metodo Descrizione
Aggiungere Aggiunge un oggetto SWbemNamedValue all'insieme.
Clone Crea una copia di questa raccolta SWbemNamedValueSet .
DeleteAll Rimuove tutti gli elementi dall'insieme, rendendo vuoto l'oggetto SWbemNamedValueSet .
Elemento Recupera un oggetto SWbemNamedValue dall'insieme. Si tratta del metodo predefinito dell'oggetto.
Rimuovi Rimuove un oggetto SWbemNamedValue dall'insieme.

Proprietà

L'oggetto SWbemNamedValueSet ha queste proprietà.

Proprietà Tipo di accesso Descrizione
Conteggio
Sola lettura
Numero di elementi nella raccolta.

Esempio

L'esempio VBScript seguente illustra la manipolazione dei set di valori denominati, nel caso in cui il valore denominato sia un tipo di matrice.

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

Nell'esempio Perl seguente viene illustrata la manipolazione dei set di valori denominati, nel caso in cui il valore denominato sia un tipo di matrice.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemNamedValueSet
IID
IID_ISWbemNamedValueSet

Vedi anche

Scripting di oggetti API