Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / security / system / security / authentication / ExtendedProtection / ServiceNameCollection.cs / 1 / ServiceNameCollection.cs
using System; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Collections; using System.Diagnostics; namespace System.Security.Authentication.ExtendedProtection { // derived from ReadOnlyCollectionBase because it needs to be back ported to .Net 1.x public class ServiceNameCollection : ReadOnlyCollectionBase { public ServiceNameCollection(ICollection items) { if (items == null) { throw new ArgumentNullException("items"); } InnerList.AddRange(items); } public ServiceNameCollection Merge(string serviceName) { ArrayList newServiceNames = new ArrayList(); // be compatible with .Net 1.x; no generics newServiceNames.AddRange(this.InnerList); AddIfNew(newServiceNames, serviceName); ServiceNameCollection newCollection = new ServiceNameCollection(newServiceNames); return newCollection; } public ServiceNameCollection Merge(IEnumerable serviceNames) { ArrayList newServiceNames = new ArrayList(); // be compatible with .Net 1.x; no generics newServiceNames.AddRange(this.InnerList); // we have a pretty bad performance here: O(n^2), but since service name lists should // be small (<<50) and Merge() should not be called frequently, this shouldn't be an issue foreach (object item in serviceNames) { AddIfNew(newServiceNames, item as string); } ServiceNameCollection newCollection = new ServiceNameCollection(newServiceNames); return newCollection; } private void AddIfNew(ArrayList newServiceNames, string serviceName) { if (String.IsNullOrEmpty(serviceName)) { throw new ArgumentException(SR.GetString(SR.security_ServiceNameCollection_EmptyServiceName)); } if (!Contains(serviceName, newServiceNames)) { newServiceNames.Add(serviceName); } } private bool Contains(string searchServiceName, ICollection serviceNames) { Debug.Assert(serviceNames != null); Debug.Assert(!String.IsNullOrEmpty(searchServiceName)); bool found = false; foreach (string serviceName in serviceNames) { if (String.Compare(serviceName, searchServiceName, StringComparison.InvariantCultureIgnoreCase) == 0) { found = true; break; } } return found; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Collections; using System.Diagnostics; namespace System.Security.Authentication.ExtendedProtection { // derived from ReadOnlyCollectionBase because it needs to be back ported to .Net 1.x public class ServiceNameCollection : ReadOnlyCollectionBase { public ServiceNameCollection(ICollection items) { if (items == null) { throw new ArgumentNullException("items"); } InnerList.AddRange(items); } public ServiceNameCollection Merge(string serviceName) { ArrayList newServiceNames = new ArrayList(); // be compatible with .Net 1.x; no generics newServiceNames.AddRange(this.InnerList); AddIfNew(newServiceNames, serviceName); ServiceNameCollection newCollection = new ServiceNameCollection(newServiceNames); return newCollection; } public ServiceNameCollection Merge(IEnumerable serviceNames) { ArrayList newServiceNames = new ArrayList(); // be compatible with .Net 1.x; no generics newServiceNames.AddRange(this.InnerList); // we have a pretty bad performance here: O(n^2), but since service name lists should // be small (<<50) and Merge() should not be called frequently, this shouldn't be an issue foreach (object item in serviceNames) { AddIfNew(newServiceNames, item as string); } ServiceNameCollection newCollection = new ServiceNameCollection(newServiceNames); return newCollection; } private void AddIfNew(ArrayList newServiceNames, string serviceName) { if (String.IsNullOrEmpty(serviceName)) { throw new ArgumentException(SR.GetString(SR.security_ServiceNameCollection_EmptyServiceName)); } if (!Contains(serviceName, newServiceNames)) { newServiceNames.Add(serviceName); } } private bool Contains(string searchServiceName, ICollection serviceNames) { Debug.Assert(serviceNames != null); Debug.Assert(!String.IsNullOrEmpty(searchServiceName)); bool found = false; foreach (string serviceName in serviceNames) { if (String.Compare(serviceName, searchServiceName, StringComparison.InvariantCultureIgnoreCase) == 0) { found = true; break; } } return found; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Expressions.cs
- MemberHolder.cs
- TranslateTransform.cs
- SqlBooleanizer.cs
- HtmlGenericControl.cs
- ReadContentAsBinaryHelper.cs
- ConfigurationStrings.cs
- cookiecontainer.cs
- DataRow.cs
- Scanner.cs
- ManifestSignatureInformation.cs
- ToolBarButtonDesigner.cs
- ScrollItemPatternIdentifiers.cs
- SchemaImporterExtensionElement.cs
- WebReference.cs
- SoapCodeExporter.cs
- UpdateTranslator.cs
- ImageDrawing.cs
- ApplicationSecurityManager.cs
- PointCollectionConverter.cs
- ZoneIdentityPermission.cs
- BookmarkUndoUnit.cs
- PageRequestManager.cs
- OdbcDataReader.cs
- ReturnType.cs
- FormViewCommandEventArgs.cs
- WorkflowServiceHost.cs
- ElementMarkupObject.cs
- SoapIgnoreAttribute.cs
- TypeTypeConverter.cs
- UserControlAutomationPeer.cs
- IndexingContentUnit.cs
- LogicalTreeHelper.cs
- SystemColors.cs
- CustomError.cs
- AtlasWeb.Designer.cs
- LiteralLink.cs
- ActiveDocumentEvent.cs
- DataGridViewSortCompareEventArgs.cs
- MediaPlayerState.cs
- ContextMenuStrip.cs
- IdentitySection.cs
- TextServicesCompartmentContext.cs
- ProfileSection.cs
- SemanticResolver.cs
- ReversePositionQuery.cs
- AppDomainUnloadedException.cs
- HostProtectionPermission.cs
- StringTraceRecord.cs
- LinearKeyFrames.cs
- ISFTagAndGuidCache.cs
- EdmSchemaError.cs
- SimpleType.cs
- formatstringdialog.cs
- DBSchemaTable.cs
- TextServicesHost.cs
- DbXmlEnabledProviderManifest.cs
- DbProviderServices.cs
- DbParameterHelper.cs
- _Connection.cs
- BasePropertyDescriptor.cs
- ConfigurationException.cs
- XmlDocumentFragment.cs
- UnmanagedMemoryStreamWrapper.cs
- Events.cs
- DataColumnSelectionConverter.cs
- ExtendedProtectionPolicy.cs
- Variant.cs
- SqlCacheDependencyDatabaseCollection.cs
- XmlTextReaderImplHelpers.cs
- FaultReasonText.cs
- XPathScanner.cs
- KnownTypes.cs
- DataControlButton.cs
- WorkflowStateRollbackService.cs
- _SslStream.cs
- SQLRoleProvider.cs
- RichTextBox.cs
- Utils.cs
- Reference.cs
- DifferencingCollection.cs
- Pair.cs
- ZipPackagePart.cs
- ExpressionEditorSheet.cs
- TextBoxLine.cs
- DocumentCollection.cs
- RuntimeVariablesExpression.cs
- DoWorkEventArgs.cs
- Profiler.cs
- smtppermission.cs
- DataException.cs
- ServiceModelEnumValidatorAttribute.cs
- SpotLight.cs
- Positioning.cs
- RtfToXamlReader.cs
- RectangleHotSpot.cs
- SqlMultiplexer.cs
- DataComponentNameHandler.cs
- ConfigurationSectionGroupCollection.cs
- CqlErrorHelper.cs