/// <summary> /// Gets a instance of translator /// </summary> /// <param name="translatorName">Translator name</param> /// <returns>Instance of translator</returns> public ITranslator GetTranslatorInstance(string translatorName) { ITranslator translator; lock (_translatorsPoolSynchronizer) { if (_translatorsPool.ContainsKey(translatorName)) { translator = _translatorsPool[translatorName]; } else { if (translatorName == Constants.TranslatorName.NullTranslator) { translator = new NullTranslator(); } else { TranslatorRegistration translatorRegistration = _assetConfig.Translators[translatorName]; if (translatorRegistration == null) { throw new TranslatorNotFoundException( string.Format(Strings.Configuration_TranslatorNotRegistered, OutputCodeType, translatorName)); } string translatorFullTypeName = translatorRegistration.Type; translator = Utils.CreateInstanceByFullTypeName <ITranslator>(translatorFullTypeName); } _translatorsPool.Add(translatorName, translator); } } return(translator); }
/// <summary> /// Gets a instance of translator /// </summary> /// <param name="translatorName">Translator name</param> /// <returns>Instance of translator</returns> public ITranslator GetTranslatorInstance(string translatorName) { ITranslator translator; lock (_translatorsPoolSynchronizer) { if (_translatorsPool.ContainsKey(translatorName)) { translator = _translatorsPool[translatorName]; } else { if (translatorName == Constants.TranslatorName.NullTranslator) { translator = new NullTranslator(); } else { TranslatorRegistration translatorRegistration = _assetConfig.Translators[translatorName]; if (translatorRegistration == null) { throw new TranslatorNotFoundException( string.Format(Strings.Configuration_TranslatorNotRegistered, OutputCodeType, translatorName)); } string translatorFullTypeName = translatorRegistration.Type; translator = Utils.CreateInstanceByFullTypeName<ITranslator>(translatorFullTypeName); } _translatorsPool.Add(translatorName, translator); } } return translator; }