当前位置: 首页>>代码示例>>C#>>正文


C# AssemblyDefinitionDynamic.SaveJs方法代码示例

本文整理汇总了C#中AssemblyDefinitionDynamic.SaveJs方法的典型用法代码示例。如果您正苦于以下问题:C# AssemblyDefinitionDynamic.SaveJs方法的具体用法?C# AssemblyDefinitionDynamic.SaveJs怎么用?C# AssemblyDefinitionDynamic.SaveJs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AssemblyDefinitionDynamic的用法示例。


在下文中一共展示了AssemblyDefinitionDynamic.SaveJs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Compile


//.........这里部分代码省略.........
			// correctly
			tr.Start (TimeReporter.TimerType.CreateTypeTotal);
			module.CreateContainer ();
			importer.AddCompiledAssembly (assembly);
			tr.Stop (TimeReporter.TimerType.CreateTypeTotal);

			references_loader.LoadReferences (module);

			tr.Start (TimeReporter.TimerType.PredefinedTypesInit);
			if (!ctx.BuiltinTypes.CheckDefinitions (module))
				return false;

			tr.Stop (TimeReporter.TimerType.PredefinedTypesInit);

			references_loader.LoadModules (assembly, module.GlobalRootNamespace);
#else
			var assembly = new AssemblyDefinitionDynamic (module, output_file_name, output_file);
			module.SetDeclaringAssembly (assembly);

			var importer = new ReflectionImporter (module, ctx.BuiltinTypes);
			assembly.Importer = importer;

			var loader = new DynamicLoader (importer, ctx);
			loader.LoadReferences (module);

			if (!ctx.BuiltinTypes.CheckDefinitions (module))
				return false;

			if (!assembly.Create (AppDomain.CurrentDomain, AssemblyBuilderAccess.Save))
				return false;

			module.CreateContainer ();

			loader.LoadModules (assembly, module.GlobalRootNamespace);
#endif
			module.InitializePredefinedTypes ();

			tr.Start (TimeReporter.TimerType.ModuleDefinitionTotal);
			module.Define ();
			tr.Stop (TimeReporter.TimerType.ModuleDefinitionTotal);

			if (Report.Errors > 0)
				return false;

			if (settings.DocumentationFile != null) {
				var doc = new DocumentationBuilder (module);
				doc.OutputDocComment (output_file, settings.DocumentationFile);
			}

			assembly.Resolve ();
			
			if (Report.Errors > 0)
				return false;

			tr.Start (TimeReporter.TimerType.EmitTotal);
			if (settings.Target == Target.JavaScript) {
				assembly.EmitJs ();
			} else if (settings.Target == Target.Cpp) {
				assembly.EmitCpp ();
			} else {
				assembly.Emit ();
			}
			tr.Stop (TimeReporter.TimerType.EmitTotal);

			if (Report.Errors > 0 && (settings.Target & Target.IsTextTarget) == 0) {
				return false;
			}

			if (settings.Target != Target.JavaScript) {

				tr.Start (TimeReporter.TimerType.CloseTypes);
				module.CloseContainer ();
				tr.Stop (TimeReporter.TimerType.CloseTypes);

				tr.Start (TimeReporter.TimerType.Resouces);
				if (!settings.WriteMetadataOnly)
					assembly.EmbedResources ();
				tr.Stop (TimeReporter.TimerType.Resouces);
			
			}

			if (Report.Errors > 0 && (settings.Target & Target.IsTextTarget) == 0)
				return false;

			if (settings.Target == Target.JavaScript) {
				assembly.SaveJs ();
			} else if (settings.Target == Target.Cpp) {
				assembly.SaveCpp ();
			} else {
				assembly.Save ();
			}

#if STATIC
			references_loader.Dispose ();
#endif
			tr.StopTotal ();
			tr.ShowStats ();

			return Report.Errors == 0;
		}
开发者ID:robterrell,项目名称:playscript-mono,代码行数:101,代码来源:driver.cs


注:本文中的AssemblyDefinitionDynamic.SaveJs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。