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


C# IBuildTarget.GetType方法代码示例

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


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

示例1: GetExtensionChain

		public ProjectServiceExtension GetExtensionChain (IBuildTarget target)
		{
			ProjectServiceExtension chain;
			if (target != null) {
				ExtensionChainInfo einfo = (ExtensionChainInfo) Thread.GetData (extensionChainSlot);
				if (einfo == null) {
					einfo = new ExtensionChainInfo ();
					ExtensionContext ctx = AddinManager.CreateExtensionContext ();
					einfo.ExtensionContext = ctx;
					einfo.ItemTypeCondition = new ItemTypeCondition (target.GetType ());
					einfo.ProjectLanguageCondition = new ProjectLanguageCondition (target);
					ctx.RegisterCondition ("ItemType", einfo.ItemTypeCondition);
					ctx.RegisterCondition ("ProjectLanguage", einfo.ProjectLanguageCondition);
					Thread.SetData (extensionChainSlot, einfo);
				} else {
					einfo.ItemTypeCondition.ObjType = target.GetType ();
					einfo.ProjectLanguageCondition.TargetProject = target;
				}
				ProjectServiceExtension[] extensions = (ProjectServiceExtension[]) einfo.ExtensionContext.GetExtensionObjects ("/MonoDevelop/ProjectModel/ProjectServiceExtensions", typeof(ProjectServiceExtension));
				chain = CreateExtensionChain (extensions);
			}
			else {
				if (defaultExtensionChain == null) {
					ExtensionContext ctx = AddinManager.CreateExtensionContext ();
					ctx.RegisterCondition ("ItemType", new ItemTypeCondition (typeof(UnknownItem)));
					ctx.RegisterCondition ("ProjectLanguage", new ProjectLanguageCondition (UnknownItem.Instance));
					ProjectServiceExtension[] extensions = (ProjectServiceExtension[]) ctx.GetExtensionObjects ("/MonoDevelop/ProjectModel/ProjectServiceExtensions", typeof(ProjectServiceExtension));
					defaultExtensionChain = CreateExtensionChain (extensions);
				}
				chain = defaultExtensionChain;
				target = UnknownItem.Instance;
			}
			
			if (chain.SupportsItem (target))
				return chain;
			else
				return chain.GetNext (target);
		}
开发者ID:hduregger,项目名称:monodevelop,代码行数:38,代码来源:ProjectService.cs

示例2: IsSelectable

		bool IsSelectable (IBuildTarget item)
		{
			if (SelectableFilter != null && !SelectableFilter (item))
				return false;
			if (selectableTypes.Count > 0)
				return selectableTypes.Any (t => t.IsAssignableFrom (item.GetType ()));
			return true;
		}
开发者ID:riverans,项目名称:monodevelop,代码行数:8,代码来源:ProjectSelectorWidget.cs

示例3: IsCheckboxVisible

 protected bool IsCheckboxVisible(IBuildTarget item)
 {
     if (!ShowCheckboxes)
         return false;
     if (selectableTypes.Count > 0)
         return selectableTypes.Any (t => t.IsAssignableFrom (item.GetType ()));
     return true;
 }
开发者ID:Kalnor,项目名称:monodevelop,代码行数:8,代码来源:ProjectSelectorWidget.cs

示例4: GetExtensionChain

		internal ProjectServiceExtension GetExtensionChain (IBuildTarget target)
		{
			ProjectServiceExtension chain;
			if (target != null) {
				lock (target) {
					ExtensionChainInfo einfo = (ExtensionChainInfo)target.ExtendedProperties [typeof(ExtensionChainInfo)];
					if (einfo == null) {
						einfo = new ExtensionChainInfo ();
						ExtensionContext ctx = AddinManager.CreateExtensionContext ();
						einfo.ExtensionContext = ctx;
						einfo.ItemTypeCondition = new ItemTypeCondition (target.GetType ());
						einfo.ProjectLanguageCondition = new ProjectLanguageCondition (target);
						ctx.RegisterCondition ("ItemType", einfo.ItemTypeCondition);
						ctx.RegisterCondition ("ProjectLanguage", einfo.ProjectLanguageCondition);
						target.ExtendedProperties [typeof(ExtensionChainInfo)] = einfo;
					} else {
						einfo.ItemTypeCondition.ObjType = target.GetType ();
						einfo.ProjectLanguageCondition.TargetProject = target;
					}
					ProjectServiceExtension[] extensions = einfo.ExtensionContext.GetExtensionObjects<ProjectServiceExtension> ("/MonoDevelop/ProjectModel/ProjectServiceExtensions");
					chain = CreateExtensionChain (extensions);
				
					// After creating the chain there is no need to keep the reference to the target
					einfo.ProjectLanguageCondition.TargetProject = null;
				}
			}
			else {
				if (defaultExtensionChain == null) {
					ExtensionContext ctx = AddinManager.CreateExtensionContext ();
					ctx.RegisterCondition ("ItemType", new ItemTypeCondition (typeof(UnknownItem)));
					ctx.RegisterCondition ("ProjectLanguage", new ProjectLanguageCondition (UnknownItem.Instance));
					ProjectServiceExtension[] extensions = ctx.GetExtensionObjects<ProjectServiceExtension> ("/MonoDevelop/ProjectModel/ProjectServiceExtensions");
					defaultExtensionChain = CreateExtensionChain (extensions);
				}
				chain = defaultExtensionChain;
				target = UnknownItem.Instance;
			}
			
			if (chain.SupportsItem (target))
				return chain;
			else
				return chain.GetNext (target);
		}
开发者ID:riverans,项目名称:monodevelop,代码行数:43,代码来源:ProjectService.cs


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