Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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));
            }
        }