/// <summary> /// Initializes a new instance of the <see cref="IxHost"/> class. /// This is first build phase. Second phase performed by <see cref="Initialize"/>. /// </summary> public IxHost() { _argumentProvider = new IxArgumentProvider(this); // TODO: Load priorities from configs. InstanceFactoryBuilder.Add(ExistingInstanceRawFactoryBuilder, 100); InstanceFactoryBuilder.Add(ClassInstanceFactoryBuilder, 200); InstanceFactoryBuilder.Add(DelegateInstanceBuilder, 300); VisibilityFilterBuilder.Add(StdVisibilityFilterBuilder, 100); ProviderNodeBuilder.Add(StdProviderConfigDefaultsSetter, 100); ProviderNodeBuilder.Add(ScopeBuilder, 200); ProviderNodeBuilder.Add(SingletonProviderBuilder, 300); ProviderNodeBuilder.Add(PerResolveProviderBuilder, 400); ScopeBinderBuilder.Add(RegistrationScopeBinderBuilder, 100); DisposeHandlerBuilder.Add(DisposableDisposeHandlerBuilder, 100); DisposeHandlerBuilder.Add(AsyncDisposableDisposeHandlerBuilder, 200); ResolveHandler.Add(SelfResolveInterceptor, 80); ResolveHandler.Add(ResolverResolveInterceptor, 100); ResolveHandler.Add(DirectCycleResolveInterceptor, 150); ResolveHandler.Add(SelfToChildrenResolver, 200); ResolveHandler.Add(StdResolveInterceptor, 300); ResolveHandler.Add(ResolveContextResolveInterceptor, 400); }
private async ValueTask <IIxInstanceLock> Resolve( IIxInstance originInstance, IxIdentifier identifier, IxResolveContext context, [CanBeNull] IxResolveFrame frame) { if (originInstance == null) { throw new ArgumentNullException(nameof(originInstance)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } if (originInstance.ProviderNode.Host != this) { throw new InvalidOperationException("You cannot use resolver from different host."); } ////if (context.IsFailed) ////{ //// throw new InvalidOperationException("You cannot do anything inside failed resolve context."); ////} return(await ResolveHandler.Delegate(originInstance, identifier, context, frame)); }
/// <summary> /// Create async or threaded task /// </summary> public SearchTask(string name, string title, ResolveHandler finished, int total, ITaskReporter reporter) : this(name, title, reporter) { this.total = total; this.finished = finished; progressId = StartReport(title); cancelEvent = new EventWaitHandle(false, EventResetMode.ManualReset); if (IsProgressRunning(progressId)) { Progress.RegisterCancelCallback(progressId, () => cancelEvent.Set()); } }
/// <summary> /// Initializes a new instance of the <see cref="ObjectDefinitionVisitor"/> class. /// </summary> /// <param name="resolveHandler">The handler to be called for resolving variables contained in a string.</param> public ObjectDefinitionVisitor(ResolveHandler resolveHandler) { AssertUtils.ArgumentNotNull(resolveHandler, "ResovleHandler"); this.resolveHandler = resolveHandler; }
public static int ShowWorld(ResolveHandler resolve, int ii) { return(resolve(ii)); }
public SearchTask(string name, string title, ResolveHandler finished, ITaskReporter reporter) : this(name, title, finished, 1, reporter) { }
/// <summary> /// Initializes a new instance of the <see cref="EventDependencyResolver" /> class. /// </summary> /// <param name="resolveMethod">The dependency resolve method.</param> /// <param name="beginLifetimeScopeMethod">The begin lifetime scope method.</param> public EventDependencyResolver(ResolveHandler resolveMethod, BeginLifetimeScopeHandler beginLifetimeScopeMethod = null) { ResolveMethod = resolveMethod; BeginLifetimeScopeMethod = beginLifetimeScopeMethod; }