public void Generate(CancellationToken cancel) { this.cancel = cancel; moduleInfo = new GenerateModuleInfo { ModuleTypeInfo = DefineModuleType() }; // types and bindings in module foreach (var type in Module.Types.Values) { if (cancel.IsCancellationRequested) throw new OperationCanceledException(cancel); GenerateType(moduleInfo.ModuleTypeInfo, type); } foreach (var binding in Module.Bindings.Values) { if (cancel.IsCancellationRequested) throw new OperationCanceledException(cancel); GenerateBinding(moduleInfo.ModuleTypeInfo, binding); } GenerateTypeCtors(moduleInfo.ModuleTypeInfo); moduleInfo.ModuleTypeInfo.TypeBuilder.CreateType(); }