Class MicrosoftDependencyResolver
- Namespace
- Splat.Microsoft.Extensions.DependencyInjection
- Assembly
- Splat.Microsoft.Extensions.DependencyInjection.dll
Microsoft DI implementation for IDependencyResolver.
public class MicrosoftDependencyResolver : IDependencyResolver, IReadonlyDependencyResolver, IMutableDependencyResolver, IDisposable
- Inheritance
-
MicrosoftDependencyResolver
- Implements
- Extension Methods
Constructors
MicrosoftDependencyResolver(IServiceCollection?)
Initializes a new instance of the MicrosoftDependencyResolver class with an IServiceCollection.
public MicrosoftDependencyResolver(IServiceCollection? services = null)
Parameters
services
IServiceCollectionAn instance of IServiceCollection.
MicrosoftDependencyResolver(IServiceProvider)
Initializes a new instance of the MicrosoftDependencyResolver class with a configured service Provider.
public MicrosoftDependencyResolver(IServiceProvider serviceProvider)
Parameters
serviceProvider
IServiceProviderA ready to use service provider.
Properties
ServiceProvider
Gets the internal Microsoft conainer, or build new if this instance was not initialized with one.
protected virtual IServiceProvider? ServiceProvider { get; }
Property Value
Methods
Dispose()
public void Dispose()
Dispose(bool)
Disposes of the instance.
protected virtual void Dispose(bool disposing)
Parameters
disposing
boolWhether or not the instance is disposing.
GetService(Type?, string?)
Gets an instance of the given serviceType
. Must return null
if the service is not available (must not throw).
public virtual object? GetService(Type? serviceType, string? contract = null)
Parameters
serviceType
TypeThe object type.
contract
stringA optional value which will retrieve only a object registered with the same contract.
Returns
- object
The requested object, if found;
null
otherwise.
GetServices(Type?, string?)
Gets all instances of the given serviceType
. Must return an empty
collection if the service is not available (must not return null
or throw).
public virtual IEnumerable<object> GetServices(Type? serviceType, string? contract = null)
Parameters
serviceType
TypeThe object type.
contract
stringA optional value which will retrieve only objects registered with the same contract.
Returns
- IEnumerable<object>
A sequence of instances of the requested
serviceType
. The sequence should be empty (notnull
) if no objects of the given type are available.
HasRegistration(Type?, string?)
Check to see if a resolvers has a registration for a type.
public virtual bool HasRegistration(Type? serviceType, string? contract = null)
Parameters
serviceType
TypeThe type to check for registration.
contract
stringA optional contract value which will indicates to only generate the value if this contract is specified.
Returns
- bool
Whether there is a registration for the type.
Register(Func<object?>, Type?, string?)
Register a function with the resolver which will generate a object for the specified service type. Optionally a contract can be registered which will indicate that registration will only work with that contract. Most implementations will use a stack based approach to allow for multile items to be registered.
public virtual void Register(Func<object?> factory, Type? serviceType, string? contract = null)
Parameters
factory
Func<object>The factory function which generates our object.
serviceType
TypeThe type which is used for the registration.
contract
stringA optional contract value which will indicates to only generate the value if this contract is specified.
ServiceRegistrationCallback(Type, string?, Action<IDisposable>)
Register a callback to be called when a new service matching the type and contract is registered.
When registered, the callback is also called for each currently matching service.
public virtual IDisposable ServiceRegistrationCallback(Type serviceType, string? contract, Action<IDisposable> callback)
Parameters
serviceType
TypeThe type which is used for the registration.
contract
stringA optional contract value which will indicates to only generate the value if this contract is specified.
callback
Action<IDisposable>The callback which will be called when the specified service type and contract are registered.
Returns
- IDisposable
When disposed removes the callback.
UnregisterAll(Type?, string?)
Unregisters all the values associated with the specified type and contract - or -
If the container has already been built, removes the specified contract (scope) entirely,
ignoring the serviceType
argument.
public virtual void UnregisterAll(Type? serviceType, string? contract = null)
Parameters
serviceType
TypeThe service type to unregister.
contract
stringA optional value which will remove only an object registered with the same contract.
UnregisterCurrent(Type?, string?)
Unregisters the current item based on the specified type and contract.
public virtual void UnregisterCurrent(Type? serviceType, string? contract = null)
Parameters
serviceType
TypeThe service type to unregister.
contract
stringThe optional contract value, which will only remove the value associated with the contract.
UpdateContainer(IServiceProvider)
Updates this instance with a configured service Provider.
public void UpdateContainer(IServiceProvider serviceProvider)
Parameters
serviceProvider
IServiceProviderA ready to use service provider.