Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / NameService.cs / 2 / NameService.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
//
//-----------------------------------------------------------------------------
namespace System.Data.Design {
using System;
using System.Collections;
using System.Globalization;
///
///
internal interface INamedObject {
string Name { get; set; }
}
///
/// Indicates a collection of objects that support INamedObject.
///
internal interface INamedObjectCollection: ICollection {
INameService GetNameService(); // Might return null.
}
///
/// A name service can be used for many INamedObjectCollection
///
internal interface INameService {
// Create UniqueName will always return a valid and unique name
//
string CreateUniqueName( INamedObjectCollection container, Type type );
string CreateUniqueName( INamedObjectCollection container, string proposed );
string CreateUniqueName( INamedObjectCollection container, string proposedNameRoot, int startSuffix);
// ValidateName does not check if the name is unque
void ValidateName( string name ); // Should throw NameValidationException when invalid name passed.
// Check if the name is unique and valid
void ValidateUniqueName( INamedObjectCollection container, string name ); // Should throw NameValidationException when invalid name passed.
// Check if the name is unique and valid
// This function is useful when renaming an existing object.
void ValidateUniqueName(INamedObjectCollection container, INamedObject namedObject, string proposedName); // Should throw NameValidationException when invalid name passed.
}
///
///
internal class NamedObjectUtil {
///
/// Private contstructor to avoid class being instantiated.
///
private NamedObjectUtil() {
}
public static INamedObject Find( INamedObjectCollection coll, string name ) {
return NamedObjectUtil.Find( (ICollection) coll, name, false);
}
private static INamedObject Find( ICollection coll, string name, bool ignoreCase) {
IEnumerator e = coll.GetEnumerator();
while( e.MoveNext() ) {
INamedObject n = e.Current as INamedObject;
if( n == null ) {
throw new InternalException( VSDExceptions.COMMON.NOT_A_NAMED_OBJECT_MSG, VSDExceptions.COMMON.NOT_A_NAMED_OBJECT_CODE );
}
if( StringUtil.EqualValue(n.Name, name, ignoreCase)) {
return n;
}
}
return null;
}
}
///
///
[Serializable]
internal sealed class NameValidationException: ApplicationException {
public NameValidationException( string message ) : base( message ) {}
// No additional fields defined so we do not have to override default ISerializable implementation
}
}
// 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
- Compiler.cs
- ToolStripItemRenderEventArgs.cs
- ColumnBinding.cs
- DecoderReplacementFallback.cs
- CodeTryCatchFinallyStatement.cs
- UnSafeCharBuffer.cs
- SortDescription.cs
- PlainXmlSerializer.cs
- TextPointer.cs
- XpsColorContext.cs
- GenerateTemporaryAssemblyTask.cs
- WindowsTreeView.cs
- SelectionProcessor.cs
- VectorAnimation.cs
- Vector3DAnimationBase.cs
- SmtpMail.cs
- SqlCacheDependencyDatabaseCollection.cs
- Rijndael.cs
- WindowsListViewGroupSubsetLink.cs
- IdentityReference.cs
- ConfigurationLocation.cs
- XmlValidatingReaderImpl.cs
- GroupItemAutomationPeer.cs
- TraceContextRecord.cs
- DbTransaction.cs
- Glyph.cs
- DecimalAnimationUsingKeyFrames.cs
- ImportDesigner.xaml.cs
- QuaternionAnimationUsingKeyFrames.cs
- BufferModesCollection.cs
- ExecutedRoutedEventArgs.cs
- CodeTypeReferenceCollection.cs
- InputScopeAttribute.cs
- Soap.cs
- ArgumentNullException.cs
- ByteStreamGeometryContext.cs
- TextViewBase.cs
- DeviceContext2.cs
- PropagatorResult.cs
- BookmarkManager.cs
- XmlResolver.cs
- PrintEvent.cs
- XmlReflectionMember.cs
- ImageField.cs
- ResolveNextArgumentWorkItem.cs
- LineProperties.cs
- ZipIOLocalFileHeader.cs
- AnonymousIdentificationSection.cs
- IIS7WorkerRequest.cs
- IPPacketInformation.cs
- DoubleLinkListEnumerator.cs
- manifestimages.cs
- SubclassTypeValidator.cs
- UnmanagedHandle.cs
- InstallerTypeAttribute.cs
- SqlStream.cs
- Constants.cs
- ErrorTolerantObjectWriter.cs
- ClientTarget.cs
- XmlSortKeyAccumulator.cs
- ProcessProtocolHandler.cs
- LinkConverter.cs
- PropertyDescriptorComparer.cs
- ProxyWebPartConnectionCollection.cs
- NullRuntimeConfig.cs
- PostBackTrigger.cs
- TextTreeObjectNode.cs
- StatusBar.cs
- DataIdProcessor.cs
- SemanticKeyElement.cs
- RecordsAffectedEventArgs.cs
- PathSegmentCollection.cs
- ObfuscateAssemblyAttribute.cs
- HelpEvent.cs
- EmbeddedMailObjectCollectionEditor.cs
- IResourceProvider.cs
- WebPageTraceListener.cs
- StylusPointPropertyInfo.cs
- DropShadowEffect.cs
- DigitShape.cs
- ConfigurationCollectionAttribute.cs
- JsonWriterDelegator.cs
- DrawingCollection.cs
- MarshalDirectiveException.cs
- HandlerBase.cs
- SoapSchemaImporter.cs
- ReachPageContentSerializer.cs
- CmsInterop.cs
- ColorConvertedBitmap.cs
- TableLayoutColumnStyleCollection.cs
- HostProtectionPermission.cs
- ThreadInterruptedException.cs
- OperandQuery.cs
- Freezable.cs
- TraversalRequest.cs
- GridViewRowPresenterBase.cs
- Variable.cs
- SR.cs
- ToolStripOverflowButton.cs
- ReflectionTypeLoadException.cs