コード例 #1
0
 /// <summary>
 /// Function used to validate a key.
 ///
 /// Params:
 ///   - Key to check.
 /// </summary>
 /// <param name="builder">Fluent Accessor Builder</param>
 /// <param name="serviceKeyResolver">Function used to check and see if a key matches with Accessor.</param>
 /// <returns>Accessor Builder</returns>
 public static IFluentAccessorBuilder <TService, TKey> CanResolveKey <TService, TKey>(
     this IFluentAccessorBuilder <TService, TKey> builder, Func <TKey, bool> serviceKeyResolver)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     return(builder.CanResolveKey((k, s) => serviceKeyResolver(k)));
 }
コード例 #2
0
 /// <summary>
 /// Register the IServiceAccessor interface with a singleton lifetime.
 /// </summary>
 /// <param name="builder">Fluent Accessor Builder</param>
 /// <returns>Accessor Builder</returns>
 public static IFluentAccessorBuilder <TService, TKey> AsSingletonAccessor <TService, TKey>(
     this IFluentAccessorBuilder <TService, TKey> builder)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     return(builder.ServiceLifetime(ServiceLifetime.Singleton));
 }
コード例 #3
0
 /// <summary>
 /// Function used to build the service synchronously.
 /// </summary>
 /// <param name="builder">Fluent Accessor Builder</param>
 /// <param name="resolverFunc">Resolver Function</param>
 /// <returns>Accessor Builder</returns>
 public static IFluentAccessorBuilder <TService, TKey> SyncResolver <TService, TKey>(
     this IFluentAccessorBuilder <TService, TKey> builder, Func <TService> resolverFunc)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     return(builder.SyncResolver((p, a) => resolverFunc()));
 }
コード例 #4
0
 /// <summary>
 /// Function used to build the service asynchronously.
 ///
 /// Params:
 ///   - ServiceProvider
 /// </summary>
 /// <param name="builder">Fluent Accessor Builder</param>
 /// <param name="asyncResolverFunc">Async Resolver Function</param>
 /// <returns>Accessor Builder</returns>
 public static IFluentAccessorBuilder <TService, TKey> AsyncResolver <TService, TKey>(
     this IFluentAccessorBuilder <TService, TKey> builder,
     Func <object[], Task <TService> > asyncResolverFunc)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     return(builder.AsyncResolver((p, a) => asyncResolverFunc(a)));
 }