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()); }