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 DataLoaderDescriptor( string key, Type type, ExecutionScope scope, Func <IServiceProvider, object> factory, TriggerDataLoaderAsync triggerLoadAsync) { Key = key ?? throw new ArgumentNullException(nameof(key)); Type = type ?? throw new ArgumentNullException(nameof(type)); Scope = scope; Factory = factory; TriggerLoadAsync = triggerLoadAsync; }