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


C# Generator.RegisterMethodName方法代码示例

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


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

示例1: Main2


//.........这里部分代码省略.........
				true;
#else
				false;
#endif

			var nsManager = new NamespaceManager (
#if MONOMAC
				buildNewStyle ? null : "MonoMac",
#elif IOS
				buildNewStyle ? null : "MonoTouch",
#else
				null,
#endif
				ns == null ? firstApiDefinitionName : ns,
				addSystemDrawingReferences
			);

			var g = new Generator (nsManager, public_mode, external, debug, types.ToArray (), strong_dictionaries.ToArray ()){
				BindThirdPartyLibrary = binding_third_party,
				CoreNSObject = CoreObject,
				BaseDir = basedir != null ? basedir : tmpdir,
				ZeroCopyStrings = zero_copy,
#if MONOMAC
				OnlyDesktop = true,
#endif
#if IOS || MONOMAC
				Compat = !buildNewStyle,
#else
				Compat = false,
#endif
#if !XAMCORE_2_0
				Alpha = alpha,
#endif
				InlineSelectors = inline_selectors,
				SkipSystemDrawing = addSystemDrawingReferences
			};

#if IOS || MONOMAC
			if (!buildNewStyle && !binding_third_party) {
				foreach (var mi in baselib.GetType (nsManager.CoreObjCRuntime + ".Messaging").GetMethods ()){
					if (mi.Name.IndexOf ("_objc_msgSend") != -1)
						g.RegisterMethodName (mi.Name);
				}
			}
#endif

			g.Go ();

			if (generate_file_list != null){
				using (var f = File.CreateText (generate_file_list)){
					foreach (var x in g.GeneratedFiles)
						f.WriteLine (x);
				}
				return 0;
			}

			cargs.Clear ();
			if (unsafef)
				cargs.Append ("-unsafe ");
			cargs.Append ("-target:library ");
			cargs.Append ("-out:").Append (Quote (outfile)).Append (' ');
			foreach (var def in defines)
				cargs.Append ("-define:").Append (def).Append (' ');
			foreach (var gf in g.GeneratedFiles)
				cargs.Append (gf).Append (' ');
			foreach (var cs in core_sources)
				cargs.Append (cs).Append (' ');
			foreach (var es in extra_sources)
				cargs.Append (es).Append (' ');
			cargs.Append (refs).Append (' ');
			cargs.Append ("-r:").Append (Quote (baselibdll)).Append (' ');
			foreach (var res in resources)
				cargs.Append (res).Append (' ');
			if (nostdlib)
				cargs.Append ("-nostdlib ");
			if (!string.IsNullOrEmpty (Path.GetDirectoryName (baselibdll)))
				cargs.Append ("-lib:").Append (Path.GetDirectoryName (baselibdll)).Append (' ');
				
			si = new ProcessStartInfo (compiler, cargs.ToString ()) {
				UseShellExecute = false,
			};

			// HACK: We are calling btouch with forced 2.1 path but we need working mono for compiler
			si.EnvironmentVariables.Remove ("MONO_PATH");

			if (verbose)
				Console.WriteLine ("{0} {1}", si.FileName, si.Arguments);

			p = Process.Start (si);
			p.WaitForExit ();
			if (p.ExitCode != 0){
				Console.WriteLine ("{0}: API binding contains errors.", tool_name);
				return 1;
			}
		} finally {
			if (delete_temp)
				Directory.Delete (tmpdir, true);
		}
		return 0;
	}
开发者ID:,项目名称:,代码行数:101,代码来源:


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