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;
        }
Exemple #2
0
 public void Init()
 {
     m_rootCreatorTree = SourceCreatorTreeNode.CreateImplementationHeirarchy(this);
 }