Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / CollectionType.cs / 1 / 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
- ObsoleteAttribute.cs
- UnsafeNativeMethods.cs
- ProtocolsConfiguration.cs
- GZipStream.cs
- ReachFixedPageSerializer.cs
- XmlValidatingReaderImpl.cs
- ScrollItemProviderWrapper.cs
- ApplicationDirectoryMembershipCondition.cs
- OdbcConnectionStringbuilder.cs
- InputLangChangeEvent.cs
- SqlReorderer.cs
- ErrorProvider.cs
- SystemResources.cs
- InvalidDataContractException.cs
- categoryentry.cs
- DataObjectEventArgs.cs
- DomainConstraint.cs
- DefaultTraceListener.cs
- UnsignedPublishLicense.cs
- SocketSettings.cs
- DataControlButton.cs
- InputReferenceExpression.cs
- ServiceDescriptionSerializer.cs
- WebPartEditorCancelVerb.cs
- WebPartConnectionsCloseVerb.cs
- XmlCharCheckingReader.cs
- BufferedGraphicsContext.cs
- ChildTable.cs
- DrawingImage.cs
- ArrangedElement.cs
- LogoValidationException.cs
- FixedFindEngine.cs
- SafeRightsManagementSessionHandle.cs
- GridSplitter.cs
- ContentElement.cs
- AssemblyHelper.cs
- ClickablePoint.cs
- ClientSettingsStore.cs
- ClusterSafeNativeMethods.cs
- ClientCredentials.cs
- ManipulationStartingEventArgs.cs
- MatrixTransform.cs
- FixedSOMTextRun.cs
- GridViewRow.cs
- XslVisitor.cs
- COM2IDispatchConverter.cs
- UIElementParagraph.cs
- FormViewRow.cs
- BitmapEffectInput.cs
- FormsAuthenticationUserCollection.cs
- EventDescriptorCollection.cs
- DataTableReaderListener.cs
- LinkUtilities.cs
- SiteMapNodeCollection.cs
- SemanticBasicElement.cs
- MailAddress.cs
- returneventsaver.cs
- PaintEvent.cs
- PointIndependentAnimationStorage.cs
- ControlUtil.cs
- HttpListenerRequest.cs
- AssemblyAttributes.cs
- SemanticBasicElement.cs
- SizeChangedInfo.cs
- _Win32.cs
- HtmlTable.cs
- ScaleTransform.cs
- FloaterBaseParagraph.cs
- recordstatefactory.cs
- JapaneseLunisolarCalendar.cs
- Matrix3DStack.cs
- HttpStreamMessage.cs
- ImportOptions.cs
- ConvertTextFrag.cs
- TemplateBindingExtension.cs
- RelationshipDetailsRow.cs
- Inline.cs
- FrameworkContextData.cs
- ObservableCollection.cs
- FileDocument.cs
- StrokeCollectionDefaultValueFactory.cs
- SynchronousReceiveElement.cs
- Material.cs
- CompressStream.cs
- CollectionViewSource.cs
- PerformanceCounterPermissionEntry.cs
- StringHelper.cs
- DesignerHierarchicalDataSourceView.cs
- TreeNodeCollection.cs
- MissingManifestResourceException.cs
- TemplateXamlTreeBuilder.cs
- SqlClientWrapperSmiStreamChars.cs
- PropertyChangedEventArgs.cs
- Delegate.cs
- IDispatchConstantAttribute.cs
- JpegBitmapEncoder.cs
- PageTheme.cs
- AccessText.cs
- DoubleAnimationUsingKeyFrames.cs
- HiddenField.cs