Objeto SWbemNamedValueSet
Un objeto SWbemNamedValueSet es una colección de objetos SWbemNamedValue. Los métodos y propiedades de SWbemNamedValueSet se usan principalmente para enviar más información a los proveedores al enviar determinadas llamadas a WMI. Todas las llamadas en SWbemServices y algunas llamadas en SWbemObject toman un parámetro opcional que es un objeto de este tipo. Un cliente puede agregar información a un objeto SWbemNamedValueSet y enviar el objeto SWbemNamedValueSet con la llamada como uno de los parámetros. La llamada CreateObject de VBScript puede crear este objeto.
Para más información, consulte Acceso a una colección.
Nota
Importante: Si es posible, no use este mecanismo, porque puede interrumpir el modelo de acceso uniforme fundamental de WMI. Si un proveedor usa este mecanismo, es importante que lo haga con moderación. Si un proveedor requiere una gran cantidad de información de contexto altamente específica para responder a una solicitud, todos los clientes deben codificarse para proporcionar esta información. Este mecanismo permite acceder a los proveedores, si es necesario.
Un objeto SWbemNamedValueSet es una colección de elementos SWbemNamedValue. Estos elementos se agregan a la colección mediante el método SWbemNamedValueSet.Add. Se quitan mediante el método SWbemNamedValueSet.Remove y se recuperan mediante el método SWbemNamedValueSet.Item. Puede acceder a los métodos para rellenar cualquier información de contexto que requiera un proveedor dinámico. Después de llamar a uno de los métodos SWbemServices, puede reutilizar el objeto SWbemNamedValueSet para otra llamada.
El proveedor subyacente determina la información que contienen los objetos SWbemNamedValueSet. WMI no utiliza la información, simplemente se la reenvía al proveedor. Los proveedores deben publicar la información de contexto que necesiten para las solicitudes de servicio.
Miembros
El objeto SWbemNamedValueSet contiene estos tipos de elementos:
Métodos
El objeto SWbemNamedValueSet tiene estos métodos.
Método | Descripción |
---|---|
Sumar | Agrega un objeto SWbemNamedValue a la colección. |
Clone | Realiza una copia de esta colección SWbemNamedValueSet. |
DeleteAll | Quita todos los elementos de la colección, lo que hace que el objeto SWbemNamedValueSet quede vacío. |
Elemento | Recupera un objeto SWbemNamedValue de la colección. Este es el método predeterminado del objeto. |
Quitar | Recupera un objeto SWbemNamedValue de la colección. |
Propiedades
El objeto SWbemNamedValueSet tiene estas propiedades.
Propiedad | Tipo de acceso | Descripción |
---|---|---|
Count |
Solo lectura |
Número de elementos de la colección. |
Ejemplos
En el siguiente ejemplo de VBScript se muestra la manipulación de conjuntos de valores con nombre, en caso de que el valor con nombre sea de tipo 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
En el siguiente ejemplo de Perl se muestra la manipulación de conjuntos de valores con nombre, en caso de que el valor con nombre sea de tipo 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 | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemNamedValueSet |
IID |
IID_ISWbemNamedValueSet |