Table of Contents

Class ServiceRegistry

Namespace
Stride.Core
Assembly
Stride.Core.dll

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

PropertyKey<IServiceRegistry>

Methods

AddService<T>(T)

Adds a service to this ServiceRegistry.

public void AddService<T>(T service) where T : class

Parameters

service T

The 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

EventHandler<ServiceEventArgs>

ServiceRemoved

Occurs when a service is removed from the registry.

public event EventHandler<ServiceEventArgs> ServiceRemoved

Event Type

EventHandler<ServiceEventArgs>