Ejemplo n.º 1
0
        private void FillDisconnectedNodes()
        {
            List <Assembly> newAssemblies = AppDomain.CurrentDomain.GetAssemblies()
                                            .Where(a => !a.IsDynamic)
                                            .Where(a => !_scannedAssemblies.Contains(a.FullName))
                                            .ToList();

            IEnumerable <Assembly> referencingCore = newAssemblies
                                                     .Where(a => a.GetReferencedAssemblies().Any(an => an.FullName == _aowClassAssemblyName));

            foreach (Assembly assembly in referencingCore)
            {
                foreach (TypeInfo type in assembly.DefinedTypes)
                {
                    AowClassAttribute aowClass = type.GetCustomAttribute <AowClassAttribute>();
                    if (aowClass != null)
                    {
                        InheritanceNode disconnectedNode = new InheritanceNode(type, aowClass);
                        _disconnectedNodes.TryAdd(disconnectedNode.Type, disconnectedNode);
                    }
                }
            }

            foreach (Assembly assembly in newAssemblies)
            {
                _scannedAssemblies.Add(assembly.FullName);
            }
        }
Ejemplo n.º 2
0
 public InheritanceNode(Type type, AowClassAttribute aowClass)
     : this()
 {
     Type = type;
     if (aowClass.ID != AowClassAttribute.AbstractID)
     {
         ClassID = aowClass.ID;
     }
 }
Ejemplo n.º 3
0
        public bool IsSupported(Type type)
        {
            AowClassAttribute classAttr = type.GetCustomAttribute <AowClassAttribute>(inherit: false);

            return(classAttr != null);
        }