Class ServiceRegistry
Provides a base implementation for managing services within an application. Implements the IServiceRegistry interface.
public class ServiceRegistry : IServiceRegistry
- Inheritance
-
ServiceRegistry
- Implements
- Extension Methods
Remarks
This class uses a dictionary to store services by their types. It is thread-safe.
Fields
ServiceRegistryKey
The key used to identify the ServiceRegistry instance.
public static readonly PropertyKey<IServiceRegistry> ServiceRegistryKey
Field Value
Methods
AddService<T>(T)
Adds a service to this ServiceRegistry.
public void AddService<T>(T service) where T : class
Parameters
service
TThe service to add.
Type Parameters
T
The type of service to add.
Remarks
This implementation triggers the ServiceAdded event after a service is successfully added.
Exceptions
- ArgumentNullException
Thrown when the provided service is null.
- ArgumentException
Thrown when a service of the same type is already registered.
GetService<T>()
Gets the service object of the specified type.
public T GetService<T>() where T : class
Returns
- T
A service of the requested type, or [null] if not found.
Type Parameters
T
The type of the service to retrieve.
RemoveService<T>()
Removes the object providing a specified service.
public void RemoveService<T>() where T : class
Type Parameters
T
The type of the service to remove.
Remarks
This implementation triggers the ServiceRemoved event after a service is successfully removed. If the service type is not found, this method does nothing.
Events
ServiceAdded
Occurs when a new service is added to the registry.
public event EventHandler<ServiceEventArgs> ServiceAdded
Event Type
ServiceRemoved
Occurs when a service is removed from the registry.
public event EventHandler<ServiceEventArgs> ServiceRemoved