本文整理汇总了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);
}
示例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);
}
示例3: CtrlSpaceCompletionProvider
public CtrlSpaceCompletionProvider(ICompletionDataGenerator cdg, IBlockNode b, IStatement stmt, MemberFilter vis = MemberFilter.All)
: base(cdg)
{
this.curBlock = b;
this.curStmt = stmt;
visibleMembers = vis;
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
}
示例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;
}
示例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);
}