• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# GeneratorContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中GeneratorContext的典型用法代码示例。如果您正苦于以下问题:C# GeneratorContext类的具体用法?C# GeneratorContext怎么用?C# GeneratorContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



GeneratorContext类属于命名空间,在下文中一共展示了GeneratorContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: RecreateInterfaceProxy

		public object RecreateInterfaceProxy(SerializationInfo info, StreamingContext context)
		{
			object proxy = null;

			GeneratorContext genContext = new GeneratorContext();

			foreach(object mixin in _mixins)
			{
				genContext.AddMixinInstance(mixin);
			}

			InterfaceProxyGenerator gen = new InterfaceProxyGenerator( _scope, genContext );

			object target = info.GetValue("__target", typeof(object));

			if (_mixins.Length == 0)
			{
				Type proxy_type = gen.GenerateCode( _interfaces, target.GetType());

				proxy = Activator.CreateInstance( proxy_type, new object[] { _interceptor, target } );
			}
			else
			{
				Type proxy_type = gen.GenerateCode( _interfaces, target.GetType() );

				proxy = Activator.CreateInstance( proxy_type, new object[] { _interceptor, target, genContext.MixinsAsArray() } );
			}

			return proxy;
		}
开发者ID:atczyc,项目名称:castle,代码行数:30,代码来源:ProxyObjectReference.cs


示例2: GeneratePropertySet

		protected override void GeneratePropertySet (GeneratorContext ctx, CodeExpression var, PropertyDescriptor prop)
		{
			if (prop.Name == "Alpha" && Alpha == -1)
				return;
			else
				base.GeneratePropertySet (ctx, var, prop);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:7,代码来源:ColorButton.cs


示例3: TwoMixins

		public void TwoMixins()
		{
			GeneratorContext context = new GeneratorContext();
			SimpleMixin mixin1 = new SimpleMixin();
			OtherMixin mixin2 = new OtherMixin();

			context.AddMixinInstance( mixin1 );
			context.AddMixinInstance( mixin2 );

			AssertInvocationInterceptor interceptor = new AssertInvocationInterceptor();

			object proxy = _generator.CreateCustomClassProxy( 
				typeof(SimpleClass), interceptor, context );
			
			Assert.IsFalse( interceptor.Invoked );

			Assert.IsNotNull(proxy);
			Assert.IsTrue( typeof(SimpleClass).IsAssignableFrom( proxy.GetType() ) );

			ISimpleMixin mixin = proxy as ISimpleMixin;
			Assert.IsNotNull(mixin);
			Assert.AreEqual(1, mixin.DoSomething());

			Assert.IsTrue( interceptor.Invoked );
			Assert.AreSame( proxy, interceptor.proxy );
			Assert.AreSame( mixin1, interceptor.mixin );

			IOtherMixin other = proxy as IOtherMixin;
			Assert.IsNotNull(other);
			Assert.AreEqual(3, other.Sum(1,2));
			Assert.IsTrue( interceptor.Invoked );
			Assert.AreSame( proxy, interceptor.proxy );
			Assert.AreSame( mixin2, interceptor.mixin );

		}
开发者ID:ralescano,项目名称:castle,代码行数:35,代码来源:MixinTestCase.cs


示例4: GenerateObjectCreation

		internal protected override CodeExpression GenerateObjectCreation (GeneratorContext ctx)
		{
			return new CodeObjectCreateExpression (
				ClassDescriptor.WrappedTypeName.ToGlobalTypeRef (), 
				new CodePrimitiveExpression (null), 
				new CodePrimitiveExpression (null)
			);
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:8,代码来源:ToolButton.cs


示例5: GenerateObjectCreation

		internal protected override CodeExpression GenerateObjectCreation (GeneratorContext ctx)
		{
			if (textCombo) {
				return new CodeMethodInvokeExpression (
					new CodeTypeReferenceExpression (new CodeTypeReference ("Gtk.ComboBox", CodeTypeReferenceOptions.GlobalReference)),
					"NewText"
				);
			} else
				return base.GenerateObjectCreation (ctx);
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:10,代码来源:ComboBox.cs


示例6: Run

        public void Run(ServiceDefinition definition)
        {
            var context = new GeneratorContext();
            context.Definition = definition;
            context.Root = definition.Root;

            this.WriteEverything(context);

            text.Flush();
        }
开发者ID:collinsauve,项目名称:LinkedInNET,代码行数:10,代码来源:CSharpGenerator.cs


示例7: GenerateObjectCreation

 protected internal override CodeExpression GenerateObjectCreation(GeneratorContext ctx)
 {
     if (IsTextCombo) {
         return new CodeMethodInvokeExpression (
             new CodeTypeReferenceExpression ("Gtk.ComboBoxEntry"),
             "NewText"
         );
     } else
         return base.GenerateObjectCreation (ctx);
 }
开发者ID:mono,项目名称:stetic,代码行数:10,代码来源:ComboBoxEntry.cs


示例8: CreateCustomProxy

        public void CreateCustomProxy()
        {
            GeneratorContext context = new GeneratorContext(
                new EnhanceTypeDelegate(EnhanceType),
                new ScreenInterfacesDelegate(ScreenInterfaces));

            object proxy = m_generator.CreateCustomProxy(
                typeof (IMyInterface),
                new StandardInvocationHandler(new MyInterfaceImpl()), context);

            Assert.IsTrue( m_enhanceInvoked );
            Assert.IsTrue( m_screenInvoked );
        }
开发者ID:BackupTheBerlios,项目名称:dpml-svn,代码行数:13,代码来源:CustomProxyGeneratorTestCase.cs


示例9: GeneratePropertySet

		protected override void GeneratePropertySet (GeneratorContext ctx, CodeExpression var, PropertyDescriptor prop)
		{
			if (prop.Name == "Group") {
				CodeExpression groupExp = GroupManager.GenerateGroupExpression (ctx, (Gtk.Widget) Wrapped);
				ctx.Statements.Add (
					new CodeAssignStatement (
						new CodePropertyReferenceExpression (var, "Group"),
						groupExp)
				);
			}
			else
				base.GeneratePropertySet (ctx, var, prop);
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:13,代码来源:RadioToolButton.cs


示例10: GenerateBuildCode

        public void GenerateBuildCode(GeneratorContext ctx, CodeVariableReferenceExpression uiManager)
        {
            StringBuilder sb = new StringBuilder ();
            sb.Append ("<ui>");
            GenerateUiString (sb);
            sb.Append ("</ui>");

            CodeMethodInvokeExpression exp = new CodeMethodInvokeExpression (
                uiManager,
                "AddUiFromString",
                new CodePrimitiveExpression (sb.ToString ())
            );
            ctx.Statements.Add (exp);
        }
开发者ID:mono,项目名称:stetic,代码行数:14,代码来源:ActionTree.cs


示例11: Main

 public static void Main(string[] args)
 {
     try
     {
         List<object> instances = new List<object>();
         GeneratorContext context = new GeneratorContext();
         Generator generator = new Generator(instances, context);
         generator.Execute();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
开发者ID:st9200,项目名称:soal-oslo,代码行数:14,代码来源:Program.cs


示例12: GenerateChildBuildCode

		protected override void GenerateChildBuildCode (GeneratorContext ctx, CodeExpression parentVar, Widget wrapper)
		{
			if (wrapper.Wrapped == expander.LabelWidget) {
				CodeExpression var = ctx.GenerateNewInstanceCode (wrapper);
				CodeAssignStatement assign = new CodeAssignStatement (
					new CodePropertyReferenceExpression (
						parentVar,
						"LabelWidget"
					),
					var
				);
				ctx.Statements.Add (assign);
			} else
				base.GenerateChildBuildCode (ctx, parentVar, wrapper);
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:15,代码来源:Expander.cs


示例13: Main

		static void Main(string[] args)
		{
			AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);

			MainOptions opts = new MainOptions();
			opts.ProcessArgs(args);

			if (args.Length == 0 || args[0].StartsWith("-"))
			{
				ShowUsage();
			}

			Console.WriteLine("Processing {0} {1}", args[0], opts.verbose);

			IGenerator generator = null;

			if (args[0] == "controller")
			{
				generator = new NewController();
			}
			else if (args[0] == "project")
			{
				generator = new NewProject();
			}
			else
			{
				Console.Error.WriteLine("Not supported");
				return;
			}

			Configure(generator, args);

			string workingDir = AppDomain.CurrentDomain.BaseDirectory;
			string templateDir = @"C:\dev\DotNet\castle\svn\trunk\MonoRail\NewGenerator\GeneratorTemplates\";

			GeneratorContext context = new GeneratorContext(workingDir, templateDir);

			ITemplateEngine engine = new NVelocityTemplateEngine(templateDir);

			if (engine is ISupportInitialize)
			{
				((ISupportInitialize)engine).BeginInit();
			}

			generator.Generate(context, new DefaultGeneratorService(context, engine));
		}
开发者ID:nats,项目名称:castle-1.0.3-mono,代码行数:46,代码来源:Program.cs


示例14: GenerateChildBuildCode

		protected override void GenerateChildBuildCode (GeneratorContext ctx, CodeExpression parentVar, Widget wrapper)
		{
			if (!HasLabel) {
				// CheckButton generates a label by default. Remove it if it is not required.
				ctx.Statements.Add (
					new CodeMethodInvokeExpression (
						parentVar,
						"Remove",
						new CodePropertyReferenceExpression (
							parentVar,
							"Child"
						)
					)
				);
			}
			base.GenerateChildBuildCode (ctx, parentVar, wrapper);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:17,代码来源:CheckButton.cs


示例15: GenerateBuildCode

		internal protected override void GenerateBuildCode (GeneratorContext ctx, CodeExpression var)
		{
			if (Text.Length > 0) {
				ctx.Statements.Add (
					new CodeAssignStatement (
						new CodePropertyReferenceExpression (
							new CodePropertyReferenceExpression (
								var,
								"Buffer"
							),
							"Text"
						),
						new CodePrimitiveExpression (Text)
					)
				);
			}
			base.GenerateBuildCode (ctx, var);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:18,代码来源:TextView.cs


示例16: GeneratePostBuildCode

		internal protected override void GeneratePostBuildCode (GeneratorContext ctx, CodeExpression var)
		{
			if (mnem != null) {
				Widget targetWidget = GetTopLevel ().FindChild (mnem);
				if (targetWidget != null) {
					CodeExpression memVar = ctx.WidgetMap.GetWidgetExp (targetWidget);
					if (memVar != null) {
						ctx.Statements.Add (
							new CodeAssignStatement (
								new CodePropertyReferenceExpression (
									var, 
									"MnemonicWidget"
								),
								memVar
							)
						);
					}
				}
			}
			base.GeneratePostBuildCode (ctx, var);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:21,代码来源:Label.cs


示例17: Execute

		public void Execute(object Application, int hwndOwner, ref object[] ContextParams, ref object[] CustomParams,
		                    ref wizardResult retval)
		{
			DTE dte = (DTE) Application;

			AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
			
			string workingDir =  (string) ContextParams[3];
			string templateDir = @"C:\dev\DotNet\castle\svn\trunk\MonoRail\NewGenerator\GeneratorTemplates\";

			context = new GeneratorContext(workingDir, templateDir);

			//Using NVelocityTemplateEngine. Since we must resolve the lib dir...
			templateEngine = new NVelocityTemplateEngine(templateDir);
			((ISupportInitialize) templateEngine).BeginInit();

			NewProject generator = CreateNewProject(ContextParams);

			generator.Generate(context, this);

			dte.Solution.Open(generator.SolutionFilePath);
		}
开发者ID:nats,项目名称:castle-1.0.3-mono,代码行数:22,代码来源:VSGeneratorService.cs


示例18: GenerateGroupExpression

        public CodeExpression GenerateGroupExpression(GeneratorContext ctx, Action action)
        {
            // Returns and expression that represents the group to which the radio belongs.
            // This expression can be an empty SList, if this is the first radio of the
            // group that has been generated, or an SList taken from previously generated
            // radios from the same group.

            string group = actions [action] as string;
            if (group == null)
                return new CodePrimitiveExpression (null);

            CodeExpression var = null;

            foreach (Action a in FindActionsInGroup (group)) {
                if (a == action)
                    continue;
                var = ctx.WidgetMap.GetWidgetExp (a);
                if (var != null)
                    break;
            }

            if (var == null) {
                return new CodeObjectCreateExpression (
                    "GLib.SList",
                    new CodePropertyReferenceExpression (
                        new CodeTypeReferenceExpression (typeof(IntPtr)),
                        "Zero"
                    )
                );
            } else {
                return new CodePropertyReferenceExpression (
                    var,
                    "Group"
                );
            }
        }
开发者ID:mono,项目名称:stetic,代码行数:36,代码来源:RadioActionGroupManager.cs


示例19: GeneratePostBuildCode

		internal protected override void GeneratePostBuildCode (GeneratorContext ctx, CodeExpression var)
		{
			base.GeneratePostBuildCode (ctx, var);
			
			// The visible property is generated here to ensure that widgets are made visible
			// after they have been fully built
			
			PropertyDescriptor prop = ClassDescriptor ["Visible"] as PropertyDescriptor;
			if (prop != null && prop.PropertyType == typeof(bool) && !(bool) prop.GetValue (Wrapped)) {
				ctx.Statements.Add (
					new CodeMethodInvokeExpression (
						var, 
						"Hide"
					)
				);
			}
			
			// The HasDefault property can only be assigned when the widget is added to the window
			prop = ClassDescriptor ["HasDefault"] as PropertyDescriptor;
			if (prop != null && (bool) prop.GetValue (Wrapped)) {
				ctx.Statements.Add (
					new CodeAssignStatement (
						new CodePropertyReferenceExpression (
							var,
							"HasDefault"
						),
						new CodePrimitiveExpression (true)
					)
				);
			}
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:31,代码来源:Widget.cs


示例20: GenerateBuildCode

		internal protected override void GenerateBuildCode (GeneratorContext ctx, CodeExpression var)
		{
			if (Type == ActionType.Radio) {
				CodeExpression groupExp = GroupManager.GenerateGroupExpression (ctx, this);
				ctx.Statements.Add (
					new CodeAssignStatement (
						new CodePropertyReferenceExpression (var, "Group"),
						groupExp)
				);
			}
			else if (type == ActionType.Toggle) {
				if (Active) {
					ctx.Statements.Add (
						new CodeAssignStatement (
							new CodePropertyReferenceExpression (var, "Active"),
							new CodePrimitiveExpression (true))
					);
				}
				if (DrawAsRadio) {
					ctx.Statements.Add (
						new CodeAssignStatement (
							new CodePropertyReferenceExpression (var, "DrawAsRadio"),
							new CodePrimitiveExpression (true))
					);
				}
			}
			base.GenerateBuildCode (ctx, var);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:28,代码来源:Action.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# GenericEventArgs类代码示例发布时间:2022-05-24
下一篇:
C# Generator类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap