2019-07-28 22:33:31 +02:00

55 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
namespace SmallInjector
{
/// <summary>
/// DI Container
/// </summary>
public interface IContainer
{
/// <summary>
/// Register types in the resolve container.
/// </summary>
/// <typeparam name="TService">Type of the service.</typeparam>
/// <typeparam name="TInterface">Type of the interface of the service.</typeparam>
/// <param name="isSingleton">True if the service should be singleton. False otherwise.</param>
/// <param name="instance">instance of the service</param>
void RegisterType<TService, TInterface>(bool isSingleton, TService instance = default) where TService : TInterface;
/// <summary>
/// Register types in the resolve container.
/// </summary>
void RegisterType<TService>(bool isSingleton, TService instance = default);
/// <summary>
/// Resolve service of specified type.
/// </summary>
object Resolve(Type serviceType);
/// <summary>
/// Resolve service of specified type.
/// </summary>
TService Resolve<TService>();
/// <summary>
/// Returns true, if the service is registered. False otherwise.
/// </summary>
bool IsRegistered<TService>();
/// <summary>
/// Returns true, if the service is registered. False otherwise.
/// </summary>
bool IsRegistered(Type serviceType);
/// <summary>
/// Resolve any implementation
/// </summary>
IEnumerable<object> ResolveAny(Type serviceType);
/// <summary>
/// Resolve any implementation
/// </summary>
IEnumerable<object> ResolveAny<TService>();
}
}