ServiceCollection<T> Class

Represents a collection of services.

Inheritance Hierarchy

System.Object
  System.Collections.Generic.Dictionary<Type, T>
    Microsoft.VisualStudio.Shell.ServiceCollection<T>

Namespace:  Microsoft.VisualStudio.Shell
Assembly:  Microsoft.VisualStudio.Shell.10.0 (in Microsoft.VisualStudio.Shell.10.0.dll)

Syntax

'Declaration
Public Class ServiceCollection(Of T) _
    Inherits Dictionary(Of Type, T)
public class ServiceCollection<T> : Dictionary<Type, T>
generic<typename T>
public ref class ServiceCollection : public Dictionary<Type^, T>
type ServiceCollection<'T> =  
    class
        inherit Dictionary<Type, 'T>
    end
JScript does not support generic types or methods.

Type Parameters

  • T
    The type of the collection.

The ServiceCollection<T> type exposes the following members.

Constructors

  Name Description
Public method ServiceCollection<T> Initializes a new instance of T[:Microsoft.VisualStudio.Shell.ServiceCollection`1.]

Top

Properties

  Name Description
Public property Comparer Gets the IEqualityComparer<T> that is used to determine equality of keys for the dictionary. (Inherited from Dictionary<Type, T>.)
Public property Count Gets the number of key/value pairs contained in the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Public property Item Gets or sets the value associated with the specified key. (Inherited from Dictionary<Type, T>.)
Public property Keys Gets a collection containing the keys in the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Public property Values Gets a collection containing the values in the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)

Top

Methods

  Name Description
Public method Add Adds the specified key and value to the dictionary. (Inherited from Dictionary<Type, T>.)
Public method Clear Removes all keys and values from the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Public method ContainsKey Determines whether the Dictionary<TKey, TValue> contains the specified key. (Inherited from Dictionary<Type, T>.)
Public method ContainsValue Determines whether the Dictionary<TKey, TValue> contains a specific value. (Inherited from Dictionary<Type, T>.)
Public method Equals Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetEnumerator Returns an enumerator that iterates through the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetObjectData Implements the System.Runtime.Serialization.ISerializable interface and returns the data needed to serialize the Dictionary<TKey, TValue> instance. (Inherited from Dictionary<Type, T>.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method OnDeserialization Implements the System.Runtime.Serialization.ISerializable interface and raises the deserialization event when the deserialization is complete. (Inherited from Dictionary<Type, T>.)
Public method Remove Removes the value with the specified key from the Dictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method TryGetValue Gets the value associated with the specified key. (Inherited from Dictionary<Type, T>.)

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method ICollection<KeyValuePair<TKey, TValue>>.Add Adds the specified value to the ICollection<T> with the specified key. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IDictionary.Add Adds the specified key and value to the dictionary. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method ICollection<KeyValuePair<TKey, TValue>>.Contains Determines whether the ICollection<T> contains a specific key and value. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IDictionary.Contains Determines whether the IDictionary contains an element with the specified key. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method ICollection<KeyValuePair<TKey, TValue>>.CopyTo Copies the elements of the ICollection<T> to an array of type KeyValuePair<TKey, TValue>, starting at the specified array index. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method ICollection.CopyTo Copies the elements of the ICollection<T> to an array, starting at the specified array index. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator Returns an enumerator that iterates through the collection. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IEnumerable.GetEnumerator Returns an enumerator that iterates through the collection. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IDictionary.GetEnumerator Returns an IDictionaryEnumerator for the IDictionary. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary.IsFixedSize Gets a value indicating whether the IDictionary has a fixed size. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property ICollection<KeyValuePair<TKey, TValue>>.IsReadOnly Gets a value indicating whether the dictionary is read-only. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary.IsReadOnly Gets a value indicating whether the IDictionary is read-only. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property ICollection.IsSynchronized Gets a value indicating whether access to the ICollection is synchronized (thread safe). (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary.Item Gets or sets the value with the specified key. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary<TKey, TValue>.Keys Gets an ICollection<T> containing the keys of the IDictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary.Keys Gets an ICollection containing the keys of the IDictionary. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method ICollection<KeyValuePair<TKey, TValue>>.Remove Removes a key and value from the dictionary. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate method IDictionary.Remove Removes the element with the specified key from the IDictionary. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property ICollection.SyncRoot Gets an object that can be used to synchronize access to the ICollection. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary<TKey, TValue>.Values Gets an ICollection<T> containing the values in the IDictionary<TKey, TValue>. (Inherited from Dictionary<Type, T>.)
Explicit interface implemetationPrivate property IDictionary.Values Gets an ICollection containing the values in the IDictionary. (Inherited from Dictionary<Type, T>.)

Top

Remarks

Use this collection to store the mapping from the type of a service to the object that provides it in a way that is aware of embedded types. The comparer for this collection performs a comparison of the GUID properties of the Type key instead of doing a reference comparison, which will fail in type-embedding scenarios.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Shell Namespace