Beispiel #1
0
        public static void RegisterModelHandlers <T>(ModelServiceBase instance, Assembly asm)
            where T : ModelHandlerBase
        {
            instance.ModelHandlers.Clear();

            var handlerTypes = ReflectionUtils.GetTypesFromAssembly <T>(asm);

            foreach (var handlerType in handlerTypes)
            {
                var handlerInstance = Activator.CreateInstance(handlerType) as T;

                if (handlerInstance != null)
                {
                    if (!instance.ModelHandlers.ContainsKey(handlerInstance.TargetType))
                    {
                        instance.ModelHandlers.Add(handlerInstance.TargetType, handlerInstance);
                    }
                }
            }
        }
        public static void RegisterModelHandlers <T>(ModelServiceBase instance, Assembly asm)
            where T : ModelHandlerBase
        {
            var traceService = ServiceContainer.Instance.GetService <TraceServiceBase>();
            var handlerTypes = ReflectionUtils.GetTypesFromAssembly <T>(asm);

            traceService.VerboseFormat((int)LogEventId.CoreCalls,
                                       "RegisterModelHandlers for service:[{0}] and assembly: [{1}]",
                                       new object[]
            {
                instance.GetType(),
                asm.FullName
            });

            foreach (var handlerType in handlerTypes)
            {
                var handlerInstance = Activator.CreateInstance(handlerType) as T;

                if (handlerInstance != null)
                {
                    if (!instance.ModelHandlers.ContainsKey(handlerInstance.TargetType))
                    {
                        traceService.VerboseFormat((int)LogEventId.CoreCalls,
                                                   "Model handler for type [{0}] has not been registered yet. Registering.",
                                                   new object[] { handlerInstance.TargetType });

                        instance.ModelHandlers.Add(handlerInstance.TargetType, handlerInstance);
                    }
                    else
                    {
                        traceService.VerboseFormat((int)LogEventId.CoreCalls,
                                                   "Model handler for type [{0}] has been registered. Skipping.",
                                                   new object[] { handlerInstance.TargetType });
                    }
                }
            }
        }
 public static void RegisterModelHandlers <T>(ModelServiceBase instance)
     where T : ModelHandlerBase
 {
     RegisterModelHandlers <T>(instance, Assembly.GetExecutingAssembly());
 }