public void RegisterDataLoader(Type type, string key, ExecutionScope scope, Func <IServiceProvider, object> loaderFactory = null, Func <object, CancellationToken, Task> triggerLoaderAsync = null) { if (key == null) { throw new ArgumentNullException(nameof(key)); } Func <IServiceProvider, object> factory = null; if (loaderFactory != null) { factory = loaderFactory; } TriggerDataLoaderAsync trigger = null; if (triggerLoaderAsync != null) { trigger = (o, c) => triggerLoaderAsync(o, c); } var descriptor = new DataLoaderDescriptor( key, type, scope, factory, trigger); _dataLoaders[key] = descriptor; }
public void RegisterLoader <T>( string key, ExecutionScope scope, Func <IServiceProvider, T> loaderFactory = null, Func <T, CancellationToken, Task> triggerLoaderAsync = null) { if (key == null) { throw new ArgumentNullException(nameof(key)); } var descriptor = new DataLoaderDescriptor( key, typeof(T), scope, sp => loaderFactory(sp), (o, c) => triggerLoaderAsync((T)o, c)); _dataLoaders[key] = descriptor; }