private void Load(IEnumerable<ExceptionHandlePolicy> exceptionHandlePolicies) { foreach (var item in exceptionHandlePolicies) { var handlers = new ExceptionHandlerMap(); foreach (var handlerConfig in item.HandlerConfigList) { SortedExceptionConfigList<ExceptionHandlerConfig, IExceptionHandler> priorityHandlers; var fullName = handlerConfig.ExceptionType.FullName; if (false == handlers.TryGetValue(fullName, out priorityHandlers)) { priorityHandlers = new SortedExceptionConfigList<ExceptionHandlerConfig, IExceptionHandler>(); handlers.Add(fullName, priorityHandlers); } priorityHandlers.Add( handlerConfig.InvokeSequence, new KeyValuePair<ExceptionHandlerConfig, IExceptionHandler>( handlerConfig, TypeFactory.CreateInstance<IExceptionHandler>(handlerConfig.Type))); } var convertors = new ExceptionConvertorMap(); foreach (var convertorConfig in item.ConvertorConfigList) { SortedExceptionConfigList<ExceptionConvertorConfig, IExceptionConvertor> priorityConvertors; var fullName = convertorConfig.ExceptionType.FullName; if (false == convertors.TryGetValue(fullName, out priorityConvertors)) { priorityConvertors = new SortedExceptionConfigList<ExceptionConvertorConfig, IExceptionConvertor>(); convertors.Add(fullName, priorityConvertors); } priorityConvertors.Add( convertorConfig.InvokeSequence, new KeyValuePair<ExceptionConvertorConfig, IExceptionConvertor>( convertorConfig, TypeFactory.CreateInstance<IExceptionConvertor>(convertorConfig.Type))); } this.exceptionPolicies.Add(item.Name, new ExceptionPolicy(convertors, handlers)); } }
private void Load(IEnumerable <ExceptionHandlePolicy> exceptionHandlePolicies) { foreach (var item in exceptionHandlePolicies) { var handlers = new ExceptionHandlerMap(); foreach (var handlerConfig in item.HandlerConfigList) { SortedExceptionConfigList <ExceptionHandlerConfig, IExceptionHandler> priorityHandlers; var fullName = handlerConfig.ExceptionType.FullName; if (false == handlers.TryGetValue(fullName, out priorityHandlers)) { priorityHandlers = new SortedExceptionConfigList <ExceptionHandlerConfig, IExceptionHandler>(); handlers.Add(fullName, priorityHandlers); } priorityHandlers.Add( handlerConfig.InvokeSequence, new KeyValuePair <ExceptionHandlerConfig, IExceptionHandler>( handlerConfig, TypeFactory.CreateInstance <IExceptionHandler>(handlerConfig.Type))); } var convertors = new ExceptionConvertorMap(); foreach (var convertorConfig in item.ConvertorConfigList) { SortedExceptionConfigList <ExceptionConvertorConfig, IExceptionConvertor> priorityConvertors; var fullName = convertorConfig.ExceptionType.FullName; if (false == convertors.TryGetValue(fullName, out priorityConvertors)) { priorityConvertors = new SortedExceptionConfigList <ExceptionConvertorConfig, IExceptionConvertor>(); convertors.Add(fullName, priorityConvertors); } priorityConvertors.Add( convertorConfig.InvokeSequence, new KeyValuePair <ExceptionConvertorConfig, IExceptionConvertor>( convertorConfig, TypeFactory.CreateInstance <IExceptionConvertor>(convertorConfig.Type))); } this.exceptionPolicies.Add(item.Name, new ExceptionPolicy(convertors, handlers)); } }