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 |
|
Libreria dei tipi |
|
DLL |
|
CLSID |
CLSID_SWbemNamedValueSet |
IID |
IID_ISWbemNamedValueSet |