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
- SqlClientWrapperSmiStream.cs
- ColumnReorderedEventArgs.cs
- SoapAttributes.cs
- Lease.cs
- StringFreezingAttribute.cs
- DisplayInformation.cs
- OptimizedTemplateContentHelper.cs
- MessagePropertyFilter.cs
- WpfWebRequestHelper.cs
- JournalEntryListConverter.cs
- FormClosedEvent.cs
- ReliableSession.cs
- ToggleButton.cs
- DataListItemCollection.cs
- ImageCodecInfoPrivate.cs
- ServiceMoniker.cs
- NetMsmqSecurityElement.cs
- SqlCommandSet.cs
- SqlWebEventProvider.cs
- XPathPatternBuilder.cs
- XamlSerializationHelper.cs
- PropertyRecord.cs
- DesignBindingPicker.cs
- ReflectionPermission.cs
- SignatureTargetIdManager.cs
- QueryAccessibilityHelpEvent.cs
- XPathNodeIterator.cs
- FontEmbeddingManager.cs
- DesignerFrame.cs
- SecurityContextSecurityToken.cs
- LoginCancelEventArgs.cs
- TileModeValidation.cs
- _BasicClient.cs
- SystemInfo.cs
- webclient.cs
- TileBrush.cs
- XPathDocumentBuilder.cs
- ResourceExpressionBuilder.cs
- CompensationHandlingFilter.cs
- WebPartsPersonalization.cs
- ContextStaticAttribute.cs
- TemplateControlParser.cs
- DefaultTraceListener.cs
- DeobfuscatingStream.cs
- Command.cs
- QuerySubExprEliminator.cs
- DeploymentSection.cs
- DesignTimeDataBinding.cs
- SecurityElement.cs
- MissingMemberException.cs
- ColorBlend.cs
- XmlEntity.cs
- CodeDomLoader.cs
- DispatchOperation.cs
- DeploymentSectionCache.cs
- NameSpaceExtractor.cs
- DescendentsWalkerBase.cs
- GroupStyle.cs
- DataControlFieldCollection.cs
- Utils.cs
- InkCanvasSelectionAdorner.cs
- ZipIOCentralDirectoryFileHeader.cs
- EntitySetRetriever.cs
- GeometryCombineModeValidation.cs
- TextBoxBase.cs
- VectorAnimation.cs
- ToolStripStatusLabel.cs
- CollectionViewGroup.cs
- InfoCardSymmetricCrypto.cs
- InstanceOwner.cs
- ConnectionStringSettings.cs
- LocationFactory.cs
- ToolStripItemTextRenderEventArgs.cs
- ModelPropertyImpl.cs
- ResourceDefaultValueAttribute.cs
- SchemaNotation.cs
- BinaryObjectInfo.cs
- ShutDownListener.cs
- MTConfigUtil.cs
- IdentityValidationException.cs
- HtmlFormParameterReader.cs
- RtfToken.cs
- _AutoWebProxyScriptEngine.cs
- FixedPageProcessor.cs
- NullableLongAverageAggregationOperator.cs
- MissingManifestResourceException.cs
- SqlFacetAttribute.cs
- DefaultEventAttribute.cs
- StoreContentChangedEventArgs.cs
- ButtonRenderer.cs
- IgnoreFileBuildProvider.cs
- UserPersonalizationStateInfo.cs
- HtmlButton.cs
- MemberNameValidator.cs
- GraphicsContext.cs
- ChtmlPhoneCallAdapter.cs
- AspProxy.cs
- GridViewCommandEventArgs.cs
- AutoResetEvent.cs
- WebPartTransformerAttribute.cs