Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / CollectionType.cs / 1305376 / CollectionType.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- 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 [....] // @backupOwner [....] //--------------------------------------------------------------------- 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
- TableHeaderCell.cs
- DataGridCheckBoxColumn.cs
- HotSpot.cs
- WhiteSpaceTrimStringConverter.cs
- ReadOnlyNameValueCollection.cs
- XXXOnTypeBuilderInstantiation.cs
- Material.cs
- TableHeaderCell.cs
- ParserHooks.cs
- HTMLTagNameToTypeMapper.cs
- Events.cs
- DataServiceKeyAttribute.cs
- ApplicationContext.cs
- ConnectionPointCookie.cs
- SerialReceived.cs
- ServiceOperationParameter.cs
- CodeComment.cs
- PartialCachingAttribute.cs
- BitmapEffect.cs
- Int16KeyFrameCollection.cs
- RuleElement.cs
- TimeZone.cs
- TableSectionStyle.cs
- UIElement3DAutomationPeer.cs
- ConnectionDemuxer.cs
- KeyPullup.cs
- WebBrowserHelper.cs
- VScrollProperties.cs
- ReturnType.cs
- WhitespaceRuleReader.cs
- PartialArray.cs
- TextRange.cs
- WorkflowApplicationTerminatedException.cs
- KeyTime.cs
- ImageInfo.cs
- LocalizedNameDescriptionPair.cs
- GridViewUpdatedEventArgs.cs
- RSAOAEPKeyExchangeFormatter.cs
- ServiceEndpointElementCollection.cs
- HtmlTable.cs
- IHttpResponseInternal.cs
- PowerStatus.cs
- WebDescriptionAttribute.cs
- CacheChildrenQuery.cs
- TimeSpanValidatorAttribute.cs
- OracleRowUpdatedEventArgs.cs
- FlowLayoutPanel.cs
- SerializationException.cs
- TrackingProvider.cs
- LicFileLicenseProvider.cs
- JulianCalendar.cs
- WmfPlaceableFileHeader.cs
- HttpHandlerActionCollection.cs
- XsltInput.cs
- DocumentSequence.cs
- AttributeSetAction.cs
- XmlNamespaceMappingCollection.cs
- SqlSelectStatement.cs
- ApplicationSecurityManager.cs
- HttpEncoderUtility.cs
- ConnectionManagementElement.cs
- AssemblyBuilderData.cs
- ThreadAbortException.cs
- StreamWithDictionary.cs
- ControlPropertyNameConverter.cs
- Section.cs
- InputBuffer.cs
- IndexerNameAttribute.cs
- DataGridViewColumnHeaderCell.cs
- DesignerTransactionCloseEvent.cs
- FixedDSBuilder.cs
- ListDependantCardsRequest.cs
- NativeMethods.cs
- ValidationRuleCollection.cs
- SecureUICommand.cs
- LineServicesCallbacks.cs
- SocketConnection.cs
- EntityTemplateFactory.cs
- BinaryConverter.cs
- DiscoveryDocumentSerializer.cs
- UniqueIdentifierService.cs
- ProcessRequestArgs.cs
- FontCollection.cs
- ClientUrlResolverWrapper.cs
- DeploymentSectionCache.cs
- ColorBlend.cs
- StructuredProperty.cs
- BrowsableAttribute.cs
- CurrentChangingEventArgs.cs
- DataGridDesigner.cs
- EncryptedPackage.cs
- MulticastNotSupportedException.cs
- UrlMappingsModule.cs
- PreservationFileWriter.cs
- ListChangedEventArgs.cs
- MemoryMappedView.cs
- SplitterEvent.cs
- NativeMethods.cs
- updateconfighost.cs
- UnknownMessageReceivedEventArgs.cs