public static SourceCreatorTreeNode CreateImplementationHeirarchy(ISourceFactory factory) { Type baseType = factory.CreatorType; AppDomain app = AppDomain.CurrentDomain; var assemblies = app.GetAssemblies(); var creatorTypes = assemblies .SelectMany(a => a.GetTypes()) .Where(t => !t.IsInterface && baseType.IsAssignableFrom(t)) .ToList(); var rootCreatorNode = new SourceCreatorTreeNode(factory, baseType, creatorTypes); return rootCreatorNode; }
public void Init() { m_rootCreatorTree = SourceCreatorTreeNode.CreateImplementationHeirarchy(this); }