目录
1.1 /// Register Flatwhite.Core components
1.2 /// Register a proxy with attribute interceptors
1.3 /// Register a proxy with attribute interceptors
/// <summary>
/// </summary>
/// <param name="services"></param>
/// <param name="attributeProvider"></param>
/// <param name="contextProvider"></param>
public static IServiceCollection UseFlatwhiteFilters(this IServiceCollection services, IAttributeProvider attributeProvider = null, IContextProvider contextProvider = null)
{
services.AddSingleton(contextProvider ?? new EmptyContextProvider());
services.AddSingleton(sp => attributeProvider ?? new DefaultAttributeProvider(sp));
return services;
}
/// <summary>
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="TImpl"></typeparam>
/// <param name="services"></param>
/// <param name="lifetime"></param>
public static void RegisterWithMethodFilters<T, TImpl>(this IServiceCollection services, ServiceLifetime lifetime) where TImpl : class, T where T : class
{
services.AddSingleton<TImpl>();
RegisterWithMethodFilters<T, TImpl>(services, sp => sp.GetRequiredService<TImpl>(), lifetime);
}
/// <summary>
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="TImpl"></typeparam>
/// <param name="services"></param>
/// <param name="target"></param>
/// <param name="lifetime"></param>
public static void RegisterWithMethodFilters<T, TImpl>(this IServiceCollection services, TImpl target, ServiceLifetime lifetime) where TImpl : class, T where T : class
{
RegisterWithMethodFilters<T, TImpl>(services, sp => target, lifetime);
}
/// <summary>