Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / __Filters.cs / 1 / __Filters.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // __Filters.cs // // This class defines the delegate methods for the COM+ implemented filters. // // // namespace System { using System; using System.Reflection; using System.Globalization; [Serializable()] internal class __Filters { // Filters... // The following are the built in filters defined for this class. These // should really be defined as static methods. They are used in as delegates // which currently doesn't support static methods. We will change this // once the compiler supports delegates. // FilterAttribute // This method will search for a member based upon the attribute passed in. // filterCriteria -- an Int32 representing the attribute internal virtual bool FilterAttribute(MemberInfo m,Object filterCriteria) { // Check that the criteria object is an Integer object if (filterCriteria == null) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); switch (m.MemberType) { case MemberTypes.Constructor: case MemberTypes.Method: { MethodAttributes criteria = 0; try { int i = (int) filterCriteria; criteria = (MethodAttributes) i; } catch { throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); } MethodAttributes attr; if (m.MemberType == MemberTypes.Method) attr = ((MethodInfo) m).Attributes; else attr = ((ConstructorInfo) m).Attributes; if (((criteria & MethodAttributes.MemberAccessMask) != 0) && (attr & MethodAttributes.MemberAccessMask) != (criteria & MethodAttributes.MemberAccessMask)) return false; if (((criteria & MethodAttributes.Static) != 0) && (attr & MethodAttributes.Static) == 0) return false; if (((criteria & MethodAttributes.Final) != 0) && (attr & MethodAttributes.Final) == 0) return false; if (((criteria & MethodAttributes.Virtual) != 0) && (attr & MethodAttributes.Virtual) == 0) return false; if (((criteria & MethodAttributes.Abstract) != 0) && (attr & MethodAttributes.Abstract) == 0) return false; if (((criteria & MethodAttributes.SpecialName) != 0) && (attr & MethodAttributes.SpecialName) == 0) return false; return true; } case MemberTypes.Field: { FieldAttributes criteria = 0; try { int i = (int) filterCriteria; criteria = (FieldAttributes) i; } catch { throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); } FieldAttributes attr = ((FieldInfo) m).Attributes; if (((criteria & FieldAttributes.FieldAccessMask) != 0) && (attr & FieldAttributes.FieldAccessMask) != (criteria & FieldAttributes.FieldAccessMask)) return false; if (((criteria & FieldAttributes.Static) != 0) && (attr & FieldAttributes.Static) == 0) return false; if (((criteria & FieldAttributes.InitOnly) != 0) && (attr & FieldAttributes.InitOnly) == 0) return false; if (((criteria & FieldAttributes.Literal) != 0) && (attr & FieldAttributes.Literal) == 0) return false; if (((criteria & FieldAttributes.NotSerialized) != 0) && (attr & FieldAttributes.NotSerialized) == 0) return false; if (((criteria & FieldAttributes.PinvokeImpl) != 0) && (attr & FieldAttributes.PinvokeImpl) == 0) return false; return true; } } return false; } // FilterName // This method will filter based upon the name. A partial wildcard // at the end of the string is supported. // filterCriteria -- This is the string name internal virtual bool FilterName(MemberInfo m,Object filterCriteria) { // Check that the criteria object is a String object if(filterCriteria == null || !(filterCriteria is String)) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); // At the moment this fails if its done on a single line.... String str = ((String) filterCriteria); str = str.Trim(); String name = m.Name; // Get the nested class name only, as opposed to the mangled one if (m.MemberType == MemberTypes.NestedType) name = name.Substring(name.LastIndexOf('+') + 1); // Check to see if this is a prefix or exact match requirement if (str.Length > 0 && str[str.Length - 1] == '*') { str = str.Substring(0, str.Length - 1); return (name.StartsWith(str, StringComparison.Ordinal)); } return (name.Equals(str)); } // FilterIgnoreCase // This delegate will do a name search but does it with the // ignore case specified. internal virtual bool FilterIgnoreCase(MemberInfo m,Object filterCriteria) { // Check that the criteria object is a String object if(filterCriteria == null || !(filterCriteria is String)) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); String str = (String) filterCriteria; str = str.Trim(); String name = m.Name; // Get the nested class name only, as opposed to the mangled one if (m.MemberType == MemberTypes.NestedType) name = name.Substring(name.LastIndexOf('+') + 1); // Check to see if this is a prefix or exact match requirement if (str.Length > 0 && str[str.Length - 1] == '*') { str = str.Substring(0, str.Length - 1); return (String.Compare(name,0,str,0,str.Length,StringComparison.OrdinalIgnoreCase)==0); } return (String.Compare(str,name, StringComparison.OrdinalIgnoreCase) == 0); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // __Filters.cs // // This class defines the delegate methods for the COM+ implemented filters. // // // namespace System { using System; using System.Reflection; using System.Globalization; [Serializable()] internal class __Filters { // Filters... // The following are the built in filters defined for this class. These // should really be defined as static methods. They are used in as delegates // which currently doesn't support static methods. We will change this // once the compiler supports delegates. // FilterAttribute // This method will search for a member based upon the attribute passed in. // filterCriteria -- an Int32 representing the attribute internal virtual bool FilterAttribute(MemberInfo m,Object filterCriteria) { // Check that the criteria object is an Integer object if (filterCriteria == null) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); switch (m.MemberType) { case MemberTypes.Constructor: case MemberTypes.Method: { MethodAttributes criteria = 0; try { int i = (int) filterCriteria; criteria = (MethodAttributes) i; } catch { throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); } MethodAttributes attr; if (m.MemberType == MemberTypes.Method) attr = ((MethodInfo) m).Attributes; else attr = ((ConstructorInfo) m).Attributes; if (((criteria & MethodAttributes.MemberAccessMask) != 0) && (attr & MethodAttributes.MemberAccessMask) != (criteria & MethodAttributes.MemberAccessMask)) return false; if (((criteria & MethodAttributes.Static) != 0) && (attr & MethodAttributes.Static) == 0) return false; if (((criteria & MethodAttributes.Final) != 0) && (attr & MethodAttributes.Final) == 0) return false; if (((criteria & MethodAttributes.Virtual) != 0) && (attr & MethodAttributes.Virtual) == 0) return false; if (((criteria & MethodAttributes.Abstract) != 0) && (attr & MethodAttributes.Abstract) == 0) return false; if (((criteria & MethodAttributes.SpecialName) != 0) && (attr & MethodAttributes.SpecialName) == 0) return false; return true; } case MemberTypes.Field: { FieldAttributes criteria = 0; try { int i = (int) filterCriteria; criteria = (FieldAttributes) i; } catch { throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritInt")); } FieldAttributes attr = ((FieldInfo) m).Attributes; if (((criteria & FieldAttributes.FieldAccessMask) != 0) && (attr & FieldAttributes.FieldAccessMask) != (criteria & FieldAttributes.FieldAccessMask)) return false; if (((criteria & FieldAttributes.Static) != 0) && (attr & FieldAttributes.Static) == 0) return false; if (((criteria & FieldAttributes.InitOnly) != 0) && (attr & FieldAttributes.InitOnly) == 0) return false; if (((criteria & FieldAttributes.Literal) != 0) && (attr & FieldAttributes.Literal) == 0) return false; if (((criteria & FieldAttributes.NotSerialized) != 0) && (attr & FieldAttributes.NotSerialized) == 0) return false; if (((criteria & FieldAttributes.PinvokeImpl) != 0) && (attr & FieldAttributes.PinvokeImpl) == 0) return false; return true; } } return false; } // FilterName // This method will filter based upon the name. A partial wildcard // at the end of the string is supported. // filterCriteria -- This is the string name internal virtual bool FilterName(MemberInfo m,Object filterCriteria) { // Check that the criteria object is a String object if(filterCriteria == null || !(filterCriteria is String)) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); // At the moment this fails if its done on a single line.... String str = ((String) filterCriteria); str = str.Trim(); String name = m.Name; // Get the nested class name only, as opposed to the mangled one if (m.MemberType == MemberTypes.NestedType) name = name.Substring(name.LastIndexOf('+') + 1); // Check to see if this is a prefix or exact match requirement if (str.Length > 0 && str[str.Length - 1] == '*') { str = str.Substring(0, str.Length - 1); return (name.StartsWith(str, StringComparison.Ordinal)); } return (name.Equals(str)); } // FilterIgnoreCase // This delegate will do a name search but does it with the // ignore case specified. internal virtual bool FilterIgnoreCase(MemberInfo m,Object filterCriteria) { // Check that the criteria object is a String object if(filterCriteria == null || !(filterCriteria is String)) throw new InvalidFilterCriteriaException(Environment.GetResourceString("RFLCT.FltCritString")); String str = (String) filterCriteria; str = str.Trim(); String name = m.Name; // Get the nested class name only, as opposed to the mangled one if (m.MemberType == MemberTypes.NestedType) name = name.Substring(name.LastIndexOf('+') + 1); // Check to see if this is a prefix or exact match requirement if (str.Length > 0 && str[str.Length - 1] == '*') { str = str.Substring(0, str.Length - 1); return (String.Compare(name,0,str,0,str.Length,StringComparison.OrdinalIgnoreCase)==0); } return (String.Compare(str,name, StringComparison.OrdinalIgnoreCase) == 0); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UInt64Storage.cs
- SafeNativeMethods.cs
- RolePrincipal.cs
- WindowsRichEditRange.cs
- UniqueIdentifierService.cs
- Timer.cs
- NetworkStream.cs
- Compilation.cs
- SymmetricAlgorithm.cs
- SystemDiagnosticsSection.cs
- BooleanToVisibilityConverter.cs
- ImageAttributes.cs
- CultureTable.cs
- XamlReaderHelper.cs
- WebPartDisplayMode.cs
- ValidationEventArgs.cs
- WindowsRegion.cs
- TemplateKeyConverter.cs
- DataGridViewColumnConverter.cs
- recordstate.cs
- ByteStream.cs
- CompatibleIComparer.cs
- DeleteWorkflowOwnerCommand.cs
- NodeFunctions.cs
- HtmlForm.cs
- __TransparentProxy.cs
- BuildManager.cs
- Canvas.cs
- RtfToXamlLexer.cs
- ContentOperations.cs
- FileRecordSequenceCompletedAsyncResult.cs
- PeerEndPoint.cs
- BulletedList.cs
- HttpRuntimeSection.cs
- HyperlinkAutomationPeer.cs
- EntryPointNotFoundException.cs
- ComponentEditorForm.cs
- FileDialogCustomPlace.cs
- HttpProcessUtility.cs
- WSFederationHttpBinding.cs
- PageWrapper.cs
- LicenseContext.cs
- DataControlFieldHeaderCell.cs
- DataGridBoolColumn.cs
- TimeStampChecker.cs
- RowToFieldTransformer.cs
- HttpApplication.cs
- XPathNavigatorReader.cs
- SEHException.cs
- ProfileModule.cs
- ConfigurationSettings.cs
- PropertyGeneratedEventArgs.cs
- FolderLevelBuildProviderCollection.cs
- KnownAssemblyEntry.cs
- ManagementObject.cs
- DataGridViewRow.cs
- RecognitionEventArgs.cs
- SqlGenerator.cs
- NumericUpDownAccelerationCollection.cs
- EntityDataSourceStatementEditorForm.cs
- Authorization.cs
- EntityDataSourceDesignerHelper.cs
- OSFeature.cs
- RecognizedWordUnit.cs
- PolyBezierSegment.cs
- AddInActivator.cs
- TextContainerHelper.cs
- CacheEntry.cs
- HttpHandlersSection.cs
- XmlSchemaAll.cs
- TraceUtility.cs
- RemotingClientProxy.cs
- StorageMappingFragment.cs
- SerializationAttributes.cs
- hwndwrapper.cs
- ModuleElement.cs
- UrlMappingsModule.cs
- DataColumnMappingCollection.cs
- DataRowChangeEvent.cs
- Variable.cs
- SessionSwitchEventArgs.cs
- ZipPackagePart.cs
- ResourceContainer.cs
- NavigationService.cs
- CompatibleComparer.cs
- RemotingSurrogateSelector.cs
- ToolBar.cs
- EntityContainerRelationshipSetEnd.cs
- ComPlusAuthorization.cs
- IsolatedStoragePermission.cs
- BindingExpressionUncommonField.cs
- ListCollectionView.cs
- WebPartCancelEventArgs.cs
- Connector.xaml.cs
- ProfileGroupSettingsCollection.cs
- ContextMenuStripActionList.cs
- EntityDataSourceSelectingEventArgs.cs
- RequestResponse.cs
- UnsafeNativeMethods.cs
- InvokeBinder.cs