Пример #1
0
 internal QueryableResource(Resource resource, QueryableModule module)
 {
     _assembly = module.Assembly;
     _module = module;
     _name = Utility.ToString(resource.Name);
     _resourceType = Utility.ConvertEnum<ResourceType>(resource.ResourceType);
     _isPublic = resource.IsPublic;
 }
Пример #2
0
        internal QueryableMethod(MethodDefinition methodDefinition, QueryableType type)
        {
            _assembly = type.Assembly;
            _module = type.Module;
            _type = type;
            _name = methodDefinition.Name;
            _fullName = methodDefinition.FullName;

            if (methodDefinition == methodDefinition.Module.EntryPoint)
            {
                _module.EntryPointMethod = this;
            }
        }
Пример #3
0
        internal QueryableType(TypeDefinition typeDefinition, QueryableModule module, QueryableType declaringType)
        {
            _assembly = module.Assembly;
            _module = module;
            _declaringType = declaringType;
            _name = typeDefinition.Name;
            _fullName = typeDefinition.FullName;

            foreach (TypeDefinition nestedType in typeDefinition.NestedTypes)
            {
                _nestedTypes.Add(new QueryableType(nestedType, module, this));
            }

            foreach (MethodDefinition methodDefinition in typeDefinition.Methods)
            {
                _methods.Add(new QueryableMethod(methodDefinition, this));
            }
        }
Пример #4
0
        internal QueryableAssembly(string assemblyPath)
        {
            AssemblyDefinition assemblyDefinition = AssemblyDefinition.ReadAssembly(assemblyPath);

            _name = Utility.ToString(assemblyDefinition.Name.Name);
            _fullName = Utility.ToString(assemblyDefinition.Name.FullName);
            _version = Utility.ToString(assemblyDefinition.Name.Version);
            _culture = Utility.ToString(assemblyDefinition.Name.Culture);
            _publicKeyToken = Utility.ToString(assemblyDefinition.Name.PublicKeyToken);

            foreach (ModuleDefinition moduleDefinition in assemblyDefinition.Modules)
            {
                QueryableModule module = new QueryableModule(moduleDefinition, this);
                _modules.Add(module);
                _resources.AddRange(module.Resources);
                _types.AddRange(module.Types);
                _methods.AddRange(module.Methods);
            }
        }