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
- XDRSchema.cs
- DecoratedNameAttribute.cs
- TemplateBaseAction.cs
- iisPickupDirectory.cs
- XmlSchemaGroup.cs
- ReceiveSecurityHeaderElementManager.cs
- GenericIdentity.cs
- Style.cs
- PolicyValidationException.cs
- sqlmetadatafactory.cs
- ColumnClickEvent.cs
- DataTemplateKey.cs
- HashSet.cs
- GridEntryCollection.cs
- AspNetHostingPermission.cs
- ToolStripActionList.cs
- FillBehavior.cs
- Brushes.cs
- DataKey.cs
- UriExt.cs
- BitmapEffectState.cs
- MetabaseServerConfig.cs
- HtmlEmptyTagControlBuilder.cs
- Command.cs
- Propagator.ExtentPlaceholderCreator.cs
- Utils.cs
- DrawingCollection.cs
- Encoder.cs
- ResumeStoryboard.cs
- MD5CryptoServiceProvider.cs
- WaitingCursor.cs
- RuntimeEnvironment.cs
- EdmType.cs
- Message.cs
- PerfCounterSection.cs
- ForceCopyBuildProvider.cs
- DataGridViewToolTip.cs
- CodeTypeDeclarationCollection.cs
- EventHandlersDesigner.cs
- XPathParser.cs
- RelatedPropertyManager.cs
- Part.cs
- JoinCqlBlock.cs
- rsa.cs
- UserPreferenceChangingEventArgs.cs
- DataGridTablesFactory.cs
- TextElementAutomationPeer.cs
- SqlDataSourceQueryEditor.cs
- SocketInformation.cs
- ResXResourceReader.cs
- PeerInvitationResponse.cs
- AppDomainUnloadedException.cs
- Calendar.cs
- Material.cs
- WebServicesSection.cs
- CodeExpressionRuleDeclaration.cs
- SequentialActivityDesigner.cs
- LinkClickEvent.cs
- BroadcastEventHelper.cs
- GPStream.cs
- ContextMenuService.cs
- CheckBox.cs
- DocumentProperties.cs
- ValidatingReaderNodeData.cs
- DependencyPropertyHelper.cs
- JournalEntryStack.cs
- newinstructionaction.cs
- TCPClient.cs
- LocationSectionRecord.cs
- CompressedStack.cs
- LoginName.cs
- SafeReadContext.cs
- DurableInstanceContextProvider.cs
- TextBoxBaseDesigner.cs
- HtmlButton.cs
- EditBehavior.cs
- StateMachineSubscriptionManager.cs
- TextParagraphView.cs
- XPathNodeList.cs
- ProfileManager.cs
- ScalarRestriction.cs
- Latin1Encoding.cs
- StaticDataManager.cs
- FixedLineResult.cs
- MailWebEventProvider.cs
- PathFigureCollection.cs
- FontStyles.cs
- UserPreferenceChangedEventArgs.cs
- WebPartMovingEventArgs.cs
- ScrollBarAutomationPeer.cs
- SrgsRulesCollection.cs
- Typography.cs
- basenumberconverter.cs
- AutomationPeer.cs
- CryptoConfig.cs
- CreateUserWizardStep.cs
- GroupBox.cs
- ExitEventArgs.cs
- GuidelineSet.cs
- PiiTraceSource.cs