Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / CollectionType.cs / 3 / CollectionType.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; namespace System.Data.Metadata.Edm { ////// Represents the Edm Collection Type /// public sealed class CollectionType : EdmType { #region Constructors ////// The constructor for constructing a CollectionType object with the element type it contains /// /// The element type that this collection type contains ///Thrown if the argument elementType is null internal CollectionType(EdmType elementType) : this(TypeUsage.Create(elementType)) { this.DataSpace = elementType.DataSpace; } ////// The constructor for constructing a CollectionType object with the element type (as a TypeUsage) it contains /// /// The element type that this collection type contains ///Thrown if the argument elementType is null internal CollectionType(TypeUsage elementType) : base(GetIdentity(EntityUtil.GenericCheckArgumentNull(elementType, "elementType")), EdmConstants.TransientNamespace, elementType.EdmType.DataSpace) { _typeUsage = elementType; SetReadOnly(); } #endregion #region Fields private readonly TypeUsage _typeUsage; #endregion #region Properties ////// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.CollectionType; } } ////// The type of the element that this collection type contains /// [MetadataProperty(BuiltInTypeKind.TypeUsage, false)] public TypeUsage TypeUsage { get { return _typeUsage; } } #endregion #region Methods ////// Constructs the name of the collection type /// /// The typeusage for the element type that this collection type refers to ///The identity of the resulting collection type private static string GetIdentity(TypeUsage typeUsage) { StringBuilder builder = new StringBuilder(50); builder.Append("collection["); typeUsage.BuildIdentity(builder); builder.Append("]"); return builder.ToString(); } ////// Override EdmEquals to support value comparison of TypeUsage property /// /// ///internal override bool EdmEquals(MetadataItem item) { // short-circuit if this and other are reference equivalent if (Object.ReferenceEquals(this, item)) { return true; } // check type of item if (null == item || BuiltInTypeKind.CollectionType != item.BuiltInTypeKind) { return false; } CollectionType other = (CollectionType)item; // compare type usage return this.TypeUsage.EdmEquals(other.TypeUsage); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; namespace System.Data.Metadata.Edm { ////// Represents the Edm Collection Type /// public sealed class CollectionType : EdmType { #region Constructors ////// The constructor for constructing a CollectionType object with the element type it contains /// /// The element type that this collection type contains ///Thrown if the argument elementType is null internal CollectionType(EdmType elementType) : this(TypeUsage.Create(elementType)) { this.DataSpace = elementType.DataSpace; } ////// The constructor for constructing a CollectionType object with the element type (as a TypeUsage) it contains /// /// The element type that this collection type contains ///Thrown if the argument elementType is null internal CollectionType(TypeUsage elementType) : base(GetIdentity(EntityUtil.GenericCheckArgumentNull(elementType, "elementType")), EdmConstants.TransientNamespace, elementType.EdmType.DataSpace) { _typeUsage = elementType; SetReadOnly(); } #endregion #region Fields private readonly TypeUsage _typeUsage; #endregion #region Properties ////// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.CollectionType; } } ////// The type of the element that this collection type contains /// [MetadataProperty(BuiltInTypeKind.TypeUsage, false)] public TypeUsage TypeUsage { get { return _typeUsage; } } #endregion #region Methods ////// Constructs the name of the collection type /// /// The typeusage for the element type that this collection type refers to ///The identity of the resulting collection type private static string GetIdentity(TypeUsage typeUsage) { StringBuilder builder = new StringBuilder(50); builder.Append("collection["); typeUsage.BuildIdentity(builder); builder.Append("]"); return builder.ToString(); } ////// Override EdmEquals to support value comparison of TypeUsage property /// /// ///internal override bool EdmEquals(MetadataItem item) { // short-circuit if this and other are reference equivalent if (Object.ReferenceEquals(this, item)) { return true; } // check type of item if (null == item || BuiltInTypeKind.CollectionType != item.BuiltInTypeKind) { return false; } CollectionType other = (CollectionType)item; // compare type usage return this.TypeUsage.EdmEquals(other.TypeUsage); } #endregion } } // 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
- ProfileSettingsCollection.cs
- RootBuilder.cs
- StructureChangedEventArgs.cs
- WebZone.cs
- DataControlFieldCell.cs
- _ConnectionGroup.cs
- PartialList.cs
- EditorZoneBase.cs
- OleDbErrorCollection.cs
- ContractCodeDomInfo.cs
- ICollection.cs
- PresentationTraceSources.cs
- GroupDescription.cs
- SemaphoreFullException.cs
- Comparer.cs
- ScriptResourceInfo.cs
- XmlKeywords.cs
- HttpResponseHeader.cs
- OracleConnectionFactory.cs
- Italic.cs
- BinaryReader.cs
- ExecutionEngineException.cs
- EnumerableRowCollection.cs
- ActivityBuilderHelper.cs
- XmlArrayItemAttribute.cs
- SafeRightsManagementSessionHandle.cs
- FacetValues.cs
- NoneExcludedImageIndexConverter.cs
- MailSettingsSection.cs
- SelectionItemProviderWrapper.cs
- DataError.cs
- Soap.cs
- QualifierSet.cs
- SqlDuplicator.cs
- ApplicationDirectory.cs
- SoapProcessingBehavior.cs
- CryptoSession.cs
- DoubleAnimationUsingKeyFrames.cs
- PrePostDescendentsWalker.cs
- XmlDocument.cs
- HtmlHistory.cs
- StrokeNode.cs
- OuterGlowBitmapEffect.cs
- OutKeywords.cs
- BoundField.cs
- ValidatorCollection.cs
- RegisteredArrayDeclaration.cs
- TranslateTransform.cs
- WeakHashtable.cs
- SqlErrorCollection.cs
- Vector3D.cs
- Point3DAnimationUsingKeyFrames.cs
- TimersDescriptionAttribute.cs
- CompilationLock.cs
- ProfileSettingsCollection.cs
- UnsafeNativeMethods.cs
- AggregateException.cs
- XmlToDatasetMap.cs
- LessThanOrEqual.cs
- KeyTimeConverter.cs
- WorkflowTransactionService.cs
- DBConcurrencyException.cs
- TextRangeAdaptor.cs
- SessionStateSection.cs
- MetaForeignKeyColumn.cs
- RecognizerInfo.cs
- PolicyException.cs
- SqlDataSourceQueryEditorForm.cs
- FrameworkName.cs
- SizeAnimationBase.cs
- WebConvert.cs
- TypeEnumerableViewSchema.cs
- UnsafeNativeMethodsTablet.cs
- ChtmlFormAdapter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- BamlLocalizableResourceKey.cs
- wmiprovider.cs
- RequestCachePolicy.cs
- PropertyGridCommands.cs
- JavaScriptObjectDeserializer.cs
- SymLanguageType.cs
- ListDictionary.cs
- TextEditorMouse.cs
- ProviderException.cs
- CacheDependency.cs
- NamespaceCollection.cs
- SmiMetaData.cs
- CodeVariableReferenceExpression.cs
- TextContainerChangeEventArgs.cs
- TextEvent.cs
- XmlStringTable.cs
- MailAddressParser.cs
- _StreamFramer.cs
- ApplicationFileParser.cs
- GridViewRow.cs
- ImageKeyConverter.cs
- PartialCachingAttribute.cs
- StylusShape.cs
- Point3D.cs
- controlskin.cs