public static PropertyDescriptorCollection GetObjectProperties(EnumReflectionMemberInfoSelectScope scope, object obj, bool browsableOnly) { bool includeClient = MethodInfoWebClient.IsWebClientObject(obj); bool includeServer = MethodInfoWebClient.IsWebServerObject(obj); PropertyDescriptorCollection ps = VPLUtil.GetProperties(obj, scope, false, browsableOnly, true); // TypeDescriptor.GetProperties(obj, attrs, false); List <PropertyDescriptor> l = new List <PropertyDescriptor>(); foreach (PropertyDescriptor p in ps) { bool include = false; if (includeClient) { if (WebClientMemberAttribute.IsClientProperty(p)) { include = true; } } if (!include) { if (includeServer) { if (WebServerMemberAttribute.IsServerProperty(p)) { include = true; } } } if (!include) { if (includeClient) { if (!(obj is Form) && (obj is IWebClientControl)) { if (string.CompareOrdinal(p.Name, "Location") != 0) { include = true; } } } } if (!include) { if (includeServer) { if (obj is IWebServerProgrammingSupport) { include = true; } } } if (include) { l.Add(p); } } return(new PropertyDescriptorCollection(l.ToArray())); }
public MethodInfo[] GetMethods(EnumReflectionMemberInfoSelectScope scope) { if (_instanceType == null) { return(new MethodInfo[] { }); } MethodInfo[] ret; if (scope == EnumReflectionMemberInfoSelectScope.Both) { ret = _instanceType.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public); } else if (scope == EnumReflectionMemberInfoSelectScope.InstanceOnly) { ret = _instanceType.GetMethods(BindingFlags.Instance | BindingFlags.Public); } else if (scope == EnumReflectionMemberInfoSelectScope.StaticOnly) { ret = _instanceType.GetMethods(BindingFlags.Static | BindingFlags.Public); } else { ret = _instanceType.GetMethods(); } if (ret == null) { return(new MethodInfo[] { }); } else { List <MethodInfo> l = new List <MethodInfo>(); for (int i = 0; i < ret.Length; i++) { if (!ret[i].IsSpecialName) { l.Add(ret[i]); } } return(l.ToArray()); } }
public ReflectionMemberInfoSelectScopeAttribute(EnumReflectionMemberInfoSelectScope scope) { _scope = scope; }