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


C# MemberFilter类代码示例

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


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

示例1: EnumChildren

        public static void EnumChildren(ICompletionDataGenerator cdgen,ResolutionContext ctxt, UserDefinedType udt, bool isVarInstance, 
			MemberFilter vis = MemberFilter.Methods | MemberFilter.Types | MemberFilter.Variables | MemberFilter.Enums)
        {
            var scan = new MemberCompletionEnumeration(ctxt, cdgen) { isVarInst = isVarInstance };

            scan.DeepScanClass(udt, vis);
        }
开发者ID:rainers,项目名称:D_Parser,代码行数:7,代码来源:MemberCompletionEnumeration.cs

示例2: Type

 static Type()
 {
     System.__Filters filters = new System.__Filters();
     FilterAttribute = new MemberFilter(filters.FilterAttribute);
     FilterName = new MemberFilter(filters.FilterName);
     FilterNameIgnoreCase = new MemberFilter(filters.FilterIgnoreCase);
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:7,代码来源:Type.cs

示例3: CtrlSpaceCompletionProvider

 public CtrlSpaceCompletionProvider(ICompletionDataGenerator cdg, IBlockNode b, IStatement stmt, MemberFilter vis = MemberFilter.All)
     : base(cdg)
 {
     this.curBlock = b;
     this.curStmt = stmt;
     visibleMembers = vis;
 }
开发者ID:Extrawurst,项目名称:D_Parser,代码行数:7,代码来源:CtrlSpaceCompletionProvider.cs

示例4: EnumScopedBlockChildren

		public static List<INode> EnumScopedBlockChildren (ResolutionContext ctxt,MemberFilter VisibleMembers)
		{
			var en = new ItemEnumeration (ctxt);

			en.ScanBlock(ctxt.ScopedBlock, ctxt.ScopedBlock.EndLocation, VisibleMembers);

			return en.Nodes;
		}
开发者ID:DinrusGroup,项目名称:DinrusIDE,代码行数:8,代码来源:ItemEnumeration.cs

示例5: EnumChildren

		public static List<INode> EnumChildren(UserDefinedType ds,ResolutionContext ctxt, MemberFilter VisibleMembers)
		{
			var en = new ItemEnumeration(ctxt);

			en.DeepScanClass(ds, new ItemCheckParameters(VisibleMembers));

			return en.Nodes;
		}
开发者ID:DinrusGroup,项目名称:D_Parser,代码行数:8,代码来源:ItemEnumeration.cs

示例6: EnumChildren

        public static void EnumChildren(ICompletionDataGenerator cdgen,ResolutionContext ctxt, UserDefinedType udt, 
			MemberFilter vis = MemberFilter.Methods | MemberFilter.Types | MemberFilter.Variables | MemberFilter.Enums)
        {
            vis ^= MemberFilter.TypeParameters;

            var scan = new MemberCompletionEnumeration(ctxt, cdgen) { isVarInst = udt.NonStaticAccess };

            scan.DeepScanClass(udt, vis);
        }
开发者ID:Extrawurst,项目名称:D_Parser,代码行数:9,代码来源:MemberCompletionEnumeration.cs

示例7: SafeInvokeHelper

 static SafeInvokeHelper()
 {
     AssemblyName name = new AssemblyName();
     name.Name = "temp";
     myAsmBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.Run);
     builder = myAsmBuilder.DefineDynamicModule("TempModule");
     methodLookup = new Hashtable();
     delLookup=new Hashtable();
     methodFilter = new MemberFilter(FiltByMethodName);
     lastCleanTime = DateTime.Now;
 }
开发者ID:baidang201,项目名称:ProductExcel,代码行数:11,代码来源:SafeInvokeHelper.cs

示例8: EnumAllAvailableMembers

        public static IEnumerable<INode> EnumAllAvailableMembers(
			ResolverContextStack ctxt,
			CodeLocation Caret,
			MemberFilter VisibleMembers)
        {
            var en = new ItemEnumeration(ctxt);

            en.IterateThroughScopeLayers(Caret, VisibleMembers);

            return en.Nodes.Count <1 ? null : en.Nodes;
        }
开发者ID:gavin-norman,项目名称:Mono-D,代码行数:11,代码来源:ItemEnumeration.cs

示例9: CanAddMemberOfType

        public static bool CanAddMemberOfType(MemberFilter vis, INode n)
        {
            if (n is DMethod)
                return n.NameHash != 0 && ((vis & MemberFilter.Methods) == MemberFilter.Methods);

            else if (n is DVariable)
            {
                var d = n as DVariable;

                if (d.IsAliasThis)
                    return false;

                // Only add aliases if at least types,methods or variables shall be shown.
                if (d.IsAlias)
                    return
                        vis.HasFlag(MemberFilter.Methods) ||
                        vis.HasFlag(MemberFilter.Types) ||
                        vis.HasFlag(MemberFilter.Variables);

                return (vis & MemberFilter.Variables) == MemberFilter.Variables;
            }

            else if (n is DClassLike)
            {
                var dc = n as DClassLike;
                switch (dc.ClassType)
                {
                    case DTokens.Class:
                        return (vis & MemberFilter.Classes) != 0;
                    case DTokens.Interface:
                        return (vis & MemberFilter.Interfaces) != 0;
                    case DTokens.Template:
                        return (vis & MemberFilter.Templates) != 0;
                    case DTokens.Struct:
                    case DTokens.Union:
                        return (vis & MemberFilter.StructsAndUnions) != 0;
                }
            }

            else if (n is DEnum)
            {
                var d = n as DEnum;

                // Only show enums if a) they're named and enums are allowed or b) variables are allowed
                return d.IsAnonymous ?
                    (vis & MemberFilter.Variables) != 0 :
                    (vis & MemberFilter.Enums) != 0;
            }
            else if (n is NamedTemplateMixinNode)
                return (vis & (MemberFilter.Variables | MemberFilter.Types)) == (MemberFilter.Variables | MemberFilter.Types);

            return false;
        }
开发者ID:DinrusGroup,项目名称:DRC,代码行数:53,代码来源:AbstractVisitor.cs

示例10: EnumAllAvailableMembers

        public static void EnumAllAvailableMembers(ICompletionDataGenerator cdgen, IBlockNode ScopedBlock
			, IStatement ScopedStatement,
			CodeLocation Caret,
		    ParseCacheView CodeCache,
			MemberFilter VisibleMembers,
			ConditionalCompilationFlags compilationEnvironment = null)
        {
            var ctxt = ResolutionContext.Create(CodeCache, compilationEnvironment, ScopedBlock, ScopedStatement);

            var en = new MemberCompletionEnumeration(ctxt, cdgen) {isVarInst = true};

            en.IterateThroughScopeLayers(Caret, VisibleMembers);
        }
开发者ID:rainers,项目名称:D_Parser,代码行数:13,代码来源:MemberCompletionEnumeration.cs

示例11: Main

	public static int Main ()
	{
		I.GetTextFn _ = I.GetText;

	Console.WriteLine ("Value: " + I.GetText);
		X x = new X ();

		Thread thr = new Thread (new ThreadStart (x.Thread_func));

		thr.Start ();
		Console.WriteLine ("Inside main ");
		thr.Join ();

		Console.WriteLine (_("Hello"));

		x.Bar ();

		MemberFilter filter = new MemberFilter (MyFilter);

		Type t = x.GetType ();

		MemberInfo [] mi = t.FindMembers (MemberTypes.Method, BindingFlags.Static | BindingFlags.NonPublic,
						  Type.FilterName, "MyFilter");

		Console.WriteLine ("FindMembers called, mi = " + mi);
		Console.WriteLine ("   Count: " + mi.Length);
		if (!filter (mi [0], "MyFilter"))
			return 1;

		//
		// This test is used to call into a delegate defined in a separate
		// namespace, but which is still not a nested delegate inside a class
		//
		NameSpace.TestDelegate td = new NameSpace.TestDelegate (multiply_by_three);

		if (td (8) != 24)
			return 30;

		//
		// Check the names that were used to define the delegates
		//
		if (td.GetType ().FullName != "NameSpace.TestDelegate")
			return 31;

		if (_.GetType ().FullName != "I+GetTextFn")
			return 32;
		
		Console.WriteLine ("Test passes");

		return 0;
	}
开发者ID:nobled,项目名称:mono,代码行数:51,代码来源:test-19.cs

示例12: IterateThroughScopeLayers

		public virtual void IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers = MemberFilter.All)
		{
			if (ctxt.ScopedStatement != null &&
				ScanStatementHierarchy(ctxt.ScopedStatement, Caret, VisibleMembers))
			{
				if (ctxt.ScopedBlock is DMethod &&
					ScanBlock(ctxt.ScopedBlock, Caret, VisibleMembers))
				{
					// Error: Locals are shadowing parameters!
				}
				
				return;
			}

			if(ctxt.ScopedBlock != null && 
			   ScanBlockUpward(ctxt.ScopedBlock, Caret, VisibleMembers))
				return;
			
			// Handle available modules/packages
			var nameStubs = new List<string>();
			if(ctxt.ParseCache != null)
				foreach(var root in ctxt.ParseCache)
				{
					ModulePackage[] packs;
					var mods = PrefilterSubnodes(root, out packs);
					
					if(packs != null){
						foreach(var pack in packs)
						{
							if(nameStubs.Contains(pack.Name))
								continue;
							
							HandleItem(new PackageSymbol(pack, null));
							nameStubs.Add(pack.Name);
						}
					}
					
					if(mods != null)
					{
						HandleItems(mods);
					}
				}

			// On the root level, handle __ctfe variable
			if (CanAddMemberOfType(VisibleMembers, __ctfe) &&
				HandleItem(__ctfe))
				return;
		}
开发者ID:DinrusGroup,项目名称:DinrusIDE,代码行数:48,代码来源:AbstractVisitor.cs

示例13: DataService

 protected DataService() {
     Type type = this.GetType();
     AttributeCollection attrs = TypeDescriptor.GetAttributes(type);
     DataAdapterAttribute attr = (DataAdapterAttribute)attrs[typeof(DataAdapterAttribute)];
     if (attr != null) {
         _adapter = Activator.CreateInstance(attr.DataAdapterType);
     }
     _fillMethods = _fillMethodCache[type] as Hashtable;
     if (_fillMethods == null) {
         if (attr != null) {
             string[] methodNames = attr.GetDataMethodNames;
             _fillMethods = Hashtable.Synchronized(new Hashtable(methodNames.Length));
             foreach (string methodName in methodNames) {
                 MethodInfo method = attr.DataAdapterType.GetMethod(methodName, PublicIgnoreCaseBindingFlags);
                 _fillMethods[methodName] = method;
                 if (_defaultFillMethod == null) {
                     _defaultFillMethod = method;
                 }
             }
             if (!String.IsNullOrEmpty(attr.UpdateMethodName)) {
                 MemberFilter filter = new MemberFilter(FilterMethodWithDataTableParameter);
                 MemberInfo[] updateMethods = attr.DataAdapterType.FindMembers(
                     MemberTypes.Method,
                     PublicIgnoreCaseBindingFlags,
                     filter,
                     attr.UpdateMethodName);
                 if (updateMethods.Length != 0) {
                     _updateMethod = (MethodInfo)updateMethods[0];
                 }
             }
         }
         else {
             _fillMethods = Hashtable.Synchronized(new Hashtable());
         }
         _updateMethodCache[type] = _updateMethod;
         _defaultFillMethodCache[type] = _defaultFillMethod;
         _fillMethodCache[type] = _fillMethods;
     }
     else {
         _updateMethod = _updateMethodCache[type] as MethodInfo;
         _defaultFillMethod = _defaultFillMethodCache[type] as MethodInfo;
     }
 }
开发者ID:sanyaade-mobiledev,项目名称:ASP.NET-Mvc-2,代码行数:43,代码来源:DataService.cs

示例14: GetMethodGroup

        /// <summary>
        /// Gets a singleton method group from the provided type.
        /// 
        /// The provided method group will be unique based upon the methods defined, not based upon the type/name
        /// combination.  In other words calling GetMethodGroup on a base type and a derived type that introduces
        /// no new methods under a given name will result in the same method group for both types.
        /// </summary>
        public static MethodGroup GetMethodGroup(Type type, string name, BindingFlags bindingFlags, MemberFilter filter) {
            ContractUtils.RequiresNotNull(type, "type");
            ContractUtils.RequiresNotNull(name, "name");

            MemberInfo[] mems = type.FindMembers(MemberTypes.Method,
                bindingFlags,
                filter ?? delegate(MemberInfo mem, object filterCritera) {
                    return mem.Name == name;
                },
                null);

            MethodGroup res = null;
            if (mems.Length != 0) {
                MethodInfo[] methods = ArrayUtils.ConvertAll<MemberInfo, MethodInfo>(
                    mems,
                    delegate(MemberInfo x) { return (MethodInfo)x; }
                );
                res = GetMethodGroup(name, methods);
            }
            return res;
        }
开发者ID:apboyle,项目名称:ironruby,代码行数:28,代码来源:ReflectionCache.cs

示例15: FindMembers

 /// <summary>
 /// Returns a filtered array of <see cref="T:System.Reflection.MemberInfo"/> objects of the specified member type.
 /// </summary>
 /// <returns>
 /// A filtered array of <see cref="T:System.Reflection.MemberInfo"/> objects of the specified member type.
 /// -or- 
 /// An empty array of type <see cref="T:System.Reflection.MemberInfo"/>, if the current <see cref="T:System.Type"/> does not have members of type <paramref name="memberType"/> that match the filter criteria.
 /// </returns>
 /// <param name="memberType">
 /// A MemberTypes object indicating the type of member to search for. 
 /// </param>
 /// <param name="bindingAttr">
 /// A bitmask comprised of one or more <see cref="T:System.Reflection.BindingFlags"/> that specify how the search is conducted.
 /// -or- 
 /// Zero, to return null. 
 /// </param>
 /// <param name="filter">
 /// The delegate that does the comparisons, returning true if the member currently being inspected matches the <paramref name="filterCriteria"/> and false otherwise. You can use the FilterAttribute, FilterName, and FilterNameIgnoreCase delegates supplied by this class. The first uses the fields of FieldAttributes, MethodAttributes, and MethodImplAttributes as search criteria, and the other two delegates use String objects as the search criteria. 
 /// </param>
 /// <param name="filterCriteria">
 /// The search criteria that determines whether a member is returned in the array of MemberInfo objects.
 /// The fields of FieldAttributes, MethodAttributes, and MethodImplAttributes can be used in conjunction with the FilterAttribute delegate supplied by this class. 
 /// </param>
 /// <exception cref="T:System.ArgumentNullException">
 /// <paramref name="filter"/> is null. 
 /// </exception>
 /// <filterpriority>2</filterpriority>
 public MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria)
 {
     return _type.FindMembers(memberType, bindingAttr, filter, filterCriteria);
 }
开发者ID:pars87,项目名称:Catel,代码行数:31,代码来源:TypeInfo.cs


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