internal static void RegisterUserFactories() { HashSet <string> userAssemblies = new HashSet <string>(InternalBridge.GetAllUserAssemblies()); var assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly assembly in assemblies) { if (!(userAssemblies.Contains(assembly.GetName().Name + ".dll"))) { continue; } var types = assembly.GetTypes(); foreach (Type type in types) { if (typeof(IUxmlFactory).IsAssignableFrom(type) && !type.IsInterface && !type.IsAbstract) { var factory = (IUxmlFactory)Activator.CreateInstance(type); InternalBridge.RegisterFactory(factory); } } } }