Udostępnij przez


InstanceDataCollection.Item[String] Właściwość

Definicja

Pobiera dane wystąpienia skojarzone z tym licznikiem. Jest to zazwyczaj zestaw nieprzetworzonych wartości liczników.

public:
 property System::Diagnostics::InstanceData ^ default[System::String ^] { System::Diagnostics::InstanceData ^ get(System::String ^ instanceName); };
public System.Diagnostics.InstanceData this[string instanceName] { get; }
member this.Item(string) : System.Diagnostics.InstanceData
Default Public ReadOnly Property Item(instanceName As String) As InstanceData

Parametry

instanceName
String

Nazwa wystąpienia kategorii licznika wydajności lub pusty ciąg (""), jeśli kategoria zawiera jedno wystąpienie.

Wartość właściwości

Element InstanceData , za pomocą którego InstanceDataCollection obiekt jest indeksowany.

Wyjątki

Parametr instanceName ma wartość null.

Przykłady

Poniższy przykład kodu akceptuje PerformanceCounter nazwę kategorii, nazwę licznika i nazwę wystąpienia z wiersza polecenia. Pobiera wartość InstanceDataCollectionCollection dla kategorii, która jest kolekcją InstanceDataCollection obiektów. Z tego pobiera dane InstanceDataCollection dla określonego licznika. Następnie, jeśli wystąpienie istnieje, w przykładzie użyto Item[] właściwości (przywołyń jako indeksator) w celu uzyskania skojarzonego InstanceData obiektu.

public static void Main(string[] args)
{
    // These values can be used as arguments.
    string categoryName = "Process";
    string counterName = "Private Bytes";
    string instanceName = "Explorer";

    InstanceDataCollection idCol;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        instanceName = args[2];
    }
    catch
    {
        // Ignore the exception from non-supplied arguments.
    }

    try
    {
        // Get the InstanceDataCollectionCollection for this category.
        PerformanceCounterCategory pcc = new PerformanceCounterCategory(categoryName);
        InstanceDataCollectionCollection idColCol = pcc.ReadCategory();

        // Get the InstanceDataCollection for this counter.
        idCol = idColCol[counterName];
        if (idCol==null)
        {
            throw new Exception("Counter does not exist.");
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("An error occurred getting the InstanceDataCollection for " +
            "category \"{0}\", counter \"{1}\"." +  "\n" + ex.Message, categoryName, counterName);
        return;
    }

    // If the instance name is empty, use the single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    // Check if this instance name exists using the Contains
    // method of the InstanceDataCollection.
    if (!idCol.Contains(instanceName))
    {
        Console.WriteLine("Instance \"{0}\" does not exist in counter \"{1}\", " +
            "category \"{2}\".", instanceName, counterName, categoryName);
        return;
    }
    else
    {
        // The instance name exists, now get its InstanceData object
        // using the indexer (Item property) for the InstanceDataCollection.
        InstanceData instData = idCol[instanceName];

        Console.WriteLine("CategoryName: {0}", categoryName);
        Console.WriteLine("CounterName:  {0}", counterName);
        Console.WriteLine("InstanceName: {0}", instData.InstanceName);
        Console.WriteLine("RawValue:     {0}", instData.RawValue);
    }
}
Sub Main(ByVal args() As String)
    ' These values can be used as arguments.
    Dim categoryName As String = "Process"
    Dim counterName As String = "Private Bytes"
    Dim instanceName As String = "Explorer"

    Dim idCol As InstanceDataCollection
    Const SINGLE_INSTANCE_NAME As String = _
        "systemdiagnosticsperfcounterlibsingleinstance"

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        counterName = args(1)
        instanceName = args(2)
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    Try
        ' Get the InstanceDataCollectionCollection for this category.
        Dim pcc As New PerformanceCounterCategory(categoryName)
        Dim idColCol As InstanceDataCollectionCollection = _
            pcc.ReadCategory()

        ' Get the InstanceDataCollection for this counter.
        idCol = idColCol(counterName)
        If idCol Is Nothing Then
            Throw New Exception("Counter does not exist.")
        End If
    Catch ex As Exception
        Console.WriteLine( _
            "An error occurred getting the InstanceDataCollection for " & _
            "category ""{0}"", counter ""{1}""." & vbCrLf & ex.Message, _
            categoryName, counterName)
        Return
    End Try

    ' If the instance name is empty, use the single-instance name.
    If instanceName.Length = 0 Then
        instanceName = SINGLE_INSTANCE_NAME
    End If

    ' Check if this instance name exists using the Contains
    ' method of the InstanceDataCollection.
    If Not idCol.Contains(instanceName) Then
        Console.WriteLine( _
            "Instance ""{0}"" does not exist in counter ""{1}"", " & _
            "category ""{2}"".", instanceName, counterName, categoryName)
        Return
    Else
        ' The instance name exists, now get its InstanceData object
        ' using the indexer (Item property) for the InstanceDataCollection.
        Dim instData As InstanceData = idCol(instanceName)

        Console.WriteLine("CategoryName: {0}", categoryName)
        Console.WriteLine("CounterName:  {0}", counterName)
        Console.WriteLine("InstanceName: {0}", instData.InstanceName)
        Console.WriteLine("RawValue:     {0}", instData.RawValue)
    End If
End Sub

Uwagi

Parametr instanceName nie uwzględnia wielkości liter.

Dotyczy