/// <summary>Gets a instance of postprocessor</summary> /// <param name="postProcessorName">Postprocessor name</param> /// <returns>Instance of postprocessor</returns> public IPostProcessor GetPostProcessorInstance(string postProcessorName) { IPostProcessor postProcessor1; lock (this._postProcessorsPoolSynchronizer) { if (this._postProcessorsPool.ContainsKey(postProcessorName)) { postProcessor1 = this._postProcessorsPool[postProcessorName]; } else { if (postProcessorName == "NullPostProcessor") { postProcessor1 = (IPostProcessor) new NullPostProcessor(); } else { PostProcessorRegistration postProcessor2 = this._assetConfig.PostProcessors[postProcessorName]; postProcessor1 = postProcessor2 != null?Utils.CreateInstanceByFullTypeName <IPostProcessor>(postProcessor2.Type) : throw new PostProcessorNotFoundException(string.Format(Strings.Configuration_PostProcessorNotRegistered, (object)this.OutputCodeType, (object)postProcessorName)); postProcessor1.UseInDebugMode = postProcessor2.UseInDebugMode; } this._postProcessorsPool.Add(postProcessorName, postProcessor1); } } return(postProcessor1); }
/// <summary> /// Gets a instance of postprocessor /// </summary> /// <param name="postProcessorName">Postprocessor name</param> /// <returns>Instance of postprocessor</returns> public IPostProcessor GetPostProcessorInstance(string postProcessorName) { IPostProcessor postProcessor; lock (_postProcessorsPoolSynchronizer) { if (_postProcessorsPool.ContainsKey(postProcessorName)) { postProcessor = _postProcessorsPool[postProcessorName]; } else { if (postProcessorName == Constants.PostProcessorName.NullPostProcessor) { postProcessor = new NullPostProcessor(); } else { PostProcessorRegistration postProcessorRegistration = _assetConfig.PostProcessors[postProcessorName]; if (postProcessorRegistration == null) { throw new PostProcessorNotFoundException( string.Format(Strings.Configuration_PostProcessorNotRegistered, OutputCodeType, postProcessorName)); } string postProcessorFullTypeName = postProcessorRegistration.Type; postProcessor = Utils.CreateInstanceByFullTypeName <IPostProcessor>(postProcessorFullTypeName); postProcessor.UseInDebugMode = postProcessorRegistration.UseInDebugMode; } _postProcessorsPool.Add(postProcessorName, postProcessor); } } return(postProcessor); }