示例#1
0
        public IntrinsicsAssemblyBuilder(string corlibAssemblyFullName)
        {
            var corlibRef = new AssemblyRefUser(new AssemblyNameInfo(corlibAssemblyFullName));

            module      = new ModuleDefUser(Guid.NewGuid().ToString(), Guid.NewGuid(), corlibRef);
            module.Kind = ModuleKind.Dll;
            var asm = new AssemblyDefUser(Guid.NewGuid().ToString());

            asm.Modules.Add(module);
            intrinsicsType            = new TypeDefUser(ExpressionCompilerConstants.IntrinsicAssemblyNamespace, ExpressionCompilerConstants.IntrinsicAssemblyTypeName, module.CorLibTypes.Object.TypeDefOrRef);
            intrinsicsType.Attributes = TypeAttributes.Public | TypeAttributes.AutoLayout | TypeAttributes.Class | TypeAttributes.AnsiClass | TypeAttributes.Abstract | TypeAttributes.Sealed;
            module.Types.Add(intrinsicsType);
            corlibTypes      = module.CorLibTypes;
            exceptionTypeSig = new ClassSig(corlibTypes.GetTypeRef(nameof(System), nameof(Exception)));
            typeTypeSig      = new ClassSig(corlibTypes.GetTypeRef(nameof(System), nameof(Type)));
            guidTypeSig      = new ValueTypeSig(corlibTypes.GetTypeRef(nameof(System), nameof(Guid)));
        }