InstanceDataCollectionCollection.Item[String] Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Instanzdaten für den angegebenen Zähler ab.
public:
property System::Diagnostics::InstanceDataCollection ^ default[System::String ^] { System::Diagnostics::InstanceDataCollection ^ get(System::String ^ counterName); };
public System.Diagnostics.InstanceDataCollection this[string counterName] { get; }
member this.Item(string) : System.Diagnostics.InstanceDataCollection
Default Public ReadOnly Property Item(counterName As String) As InstanceDataCollection
Parameter
- counterName
- String
Der Name des Leistungsindikators.
Eigenschaftswert
Ein InstanceDataCollection-Element, mit dem das InstanceDataCollectionCollection-Objekt indiziert wird.
Ausnahmen
Der counterName
-Parameter ist null
.
Beispiele
Das folgende Codebeispiel akzeptiert einen PerformanceCounter Kategorienamen und einen Leistungsindikatornamen über die Befehlszeile. Es ruft den InstanceDataCollectionCollection für ab PerformanceCounterCategory. Wenn der PerformanceCounter dann vorhanden ist, verwendet das Beispiel die -Eigenschaft (auf die Item[] als Indexer verwiesen wird), um die zugeordneten InstanceDataCollection abzurufen, und zeigt die instance Namen aus der Auflistung an.
public static void Main(string[] args)
{
// The following values can be used as arguments.
string categoryName = "Process";
string counterName = "Private Bytes";
InstanceDataCollectionCollection idColCol;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
counterName = args[1];
}
catch
{
// Ignore the exception from non-supplied arguments.
}
try
{
// Get the InstanceDataCollectionCollection for this category.
PerformanceCounterCategory pcc = new PerformanceCounterCategory(categoryName);
idColCol = pcc.ReadCategory();
}
catch(Exception ex)
{
Console.WriteLine("An error occurred getting the InstanceDataCollection for " +
"category \"{0}\"."+ "\n" +ex.Message, categoryName);
return;
}
// Check if this counter name exists using the Contains
// method of the InstanceDataCollectionCollection.
if (!idColCol.Contains(counterName))
{
Console.WriteLine("Counter \"{0}\" does not exist in category \"{1}\".", counterName, categoryName);
return;
}
else
{
// Now get the counter's InstanceDataCollection object using the
// indexer (Item property) for the InstanceDataCollectionCollection.
InstanceDataCollection countData = idColCol[counterName];
ICollection idColKeys = countData.Keys;
string[] idColKeysArray = new string[idColKeys.Count];
idColKeys.CopyTo(idColKeysArray, 0);
Console.WriteLine("Counter \"{0}\" of category \"{1}\" " +
"has {2} instances.", counterName, categoryName, idColKeys.Count);
// Display the instance names for this counter.
int index;
for(index=0; index<idColKeysArray.Length; index++)
{
Console.WriteLine("{0,4} -- {1}", index+1, idColKeysArray[index]);
}
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim counterName As String = ""
Dim idColCol As InstanceDataCollectionCollection
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
counterName = args(1)
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)
idColCol = pcc.ReadCategory()
Catch ex As Exception
Console.WriteLine( _
"An error occurred getting the InstanceDataCollection for " & _
"category ""{0}""." & vbCrLf & ex.Message, categoryName)
Return
End Try
' Check if this counter name exists using the Contains
' method of the InstanceDataCollectionCollection.
If Not idColCol.Contains(counterName) Then
Console.WriteLine( _
"Counter ""{0}"" does not exist in category ""{1}"".", _
counterName, categoryName)
Return
Else
' Now get the counter's InstanceDataCollection object using the
' indexer (Item property) for the InstanceDataCollectionCollection.
Dim countData As InstanceDataCollection = idColCol(counterName)
Dim idColKeys As ICollection = countData.Keys
Dim idColKeysArray(idColKeys.Count - 1) As String
idColKeys.CopyTo(idColKeysArray, 0)
Console.WriteLine("Counter ""{0}"" of category ""{1}"" " & _
"has {2} instances.", counterName, categoryName, idColKeys.Count)
' Display the instance names for this counter.
Dim index As Integer
For index = 0 To idColKeysArray.Length - 1
Console.WriteLine("{0,4} -- {1}", index + 1, idColKeysArray(index))
Next index
End If
End Sub
Hinweise
Beim counterName
Parameter wird die Groß-/Kleinschreibung nicht beachtet.
Jedes InstanceDataCollection Objekt in der Auflistung enthält die Leistungsdaten für alle Leistungsindikatoren für eine instance. Die Daten werden nach dem Zählernamen und dann nach instance Namen indiziert. Der Indexer verwendet den counterName
Parameter, um die Indikatoren zu durchlaufen, die dieser Sammlung von instance Daten zugeordnet sind.