internal ModuleBuilder GetModuleBuilder(InternalModuleBuilder module) { Debug.Assert(module != null); Debug.Assert(InternalAssembly == module.Assembly); lock (SyncRoot) { // in CoreCLR there is only one module in each dynamic assembly, the manifest module if (_manifestModuleBuilder.InternalModule == module) { return(_manifestModuleBuilder); } throw new ArgumentException(null, nameof(module)); } }
private void InitManifestModule() { InternalModuleBuilder modBuilder = (InternalModuleBuilder)GetInMemoryAssemblyModule(GetNativeHandle()); // Note that this ModuleBuilder cannot be used for RefEmit yet // because it hasn't been initialized. // However, it can be used to set the custom attribute on the Assembly _manifestModuleBuilder = new ModuleBuilder(this, modBuilder); // We are only setting the name in the managed ModuleBuilderData here. // The name in the underlying metadata will be set when the // manifest module is created during nCreateDynamicAssembly. // This name needs to stay in sync with that used in // Assembly::Init to call ReflectionModule::Create (in VM) _manifestModuleBuilder.Init(ManifestModuleName); _isManifestModuleUsedAsDefinedModule = false; }