AsmResolver.Net.NetAssemblyFactory.CreateAssembly C# (CSharp) Метод

CreateAssembly() публичный статический Метод

public static CreateAssembly ( string name, bool isDll ) : WindowsAssembly
name string
isDll bool
Результат WindowsAssembly
        public static WindowsAssembly CreateAssembly(string name, bool isDll)
        {
            var assembly = new WindowsAssembly();
            assembly.RelocationDirectory = new ImageRelocationDirectory();
            InitializeNtHeaders(assembly.NtHeaders);
            InitializeNetDirectory(assembly.NetDirectory = new ImageNetDirectory());

            assembly.ImportDirectory.ModuleImports.Add(CreateMscoreeImport(isDll));

            var tableStream = assembly.NetDirectory.MetadataHeader.GetStream<TableStream>();
            tableStream.GetTable<ModuleDefinition>().Add(new ModuleDefinition(name + (isDll ? ".dll" : ".exe"))
            {
                Mvid = Guid.NewGuid()
            });
            tableStream.GetTable<AssemblyDefinition>().Add(new AssemblyDefinition(name, new Version(1, 0, 0, 0)));

            var moduleTypeDef = new TypeDefinition(string.Empty, "<Module>", null);
            moduleTypeDef.MetadataRow.Column5 = 1; // TODO: remove MethodList setter.
            moduleTypeDef.MetadataRow.Column6 = 1; // TODO: remove MethodList setter.
            tableStream.GetTable<TypeDefinition>().Add(moduleTypeDef);

            return assembly;
        }