Example #1
0
        public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter)
        {
            _architectureCacheKey.Add(module.Name, namespaceFilter);

            var types = module.Types;

            var allTypes = types.Concat(types.SelectMany(typeDefinition => typeDefinition.NestedTypes));

            allTypes
            .Where(typeDefinition => RegexUtils.MatchNamespaces(namespaceFilter,
                                                                typeDefinition.Namespace))
            .ForEach(typeDefinition =>
            {
                var type = _typeFactory.GetOrCreateTypeFromTypeReference(typeDefinition);
                if (!_architectureTypes.Contains(type))
                {
                    _architectureTypes.Add(type);
                }
            });

            _namespaceRegistry.Namespaces
            .Where(ns => RegexUtils.MatchNamespaces(namespaceFilter, ns.FullName))
            .ForEach(ns =>
            {
                _loadTaskRegistry.Add(typeof(AddTypesToNamespace),
                                      new AddTypesToNamespace(ns, _architectureTypes));
            });
        }
Example #2
0
        private void LoadBaseTask(Class cls, Type type, TypeDefinition typeDefinition)
        {
            if (typeDefinition == null)
            {
                return;
            }

            _loadTaskRegistry.Add(typeof(AddBaseClassDependency),
                                  new AddBaseClassDependency(cls, type, typeDefinition, this));
        }