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
- WsatProxy.cs
- SafeSystemMetrics.cs
- AssertSection.cs
- EnvironmentPermission.cs
- Attachment.cs
- COM2EnumConverter.cs
- AccessViolationException.cs
- GradientBrush.cs
- SqlNamer.cs
- ParameterElementCollection.cs
- XmlDataFileEditor.cs
- OneOf.cs
- MasterPage.cs
- Cursors.cs
- WebBrowsableAttribute.cs
- OLEDB_Enum.cs
- Pair.cs
- EqualityComparer.cs
- IdleTimeoutMonitor.cs
- XmlSchemaFacet.cs
- SessionIDManager.cs
- TextShapeableCharacters.cs
- CommonDialog.cs
- SymbolTable.cs
- ConfigXmlReader.cs
- SafeRightsManagementHandle.cs
- ControlLocalizer.cs
- DynamicValidatorEventArgs.cs
- HttpRawResponse.cs
- TrackingValidationObjectDictionary.cs
- ValueProviderWrapper.cs
- Invariant.cs
- StandardOleMarshalObject.cs
- SmtpSection.cs
- Enlistment.cs
- WeakReferenceEnumerator.cs
- CodeDomSerializerBase.cs
- ArgumentNullException.cs
- ConstraintStruct.cs
- FilterableAttribute.cs
- VarInfo.cs
- FieldMetadata.cs
- HttpServerVarsCollection.cs
- ComNativeDescriptor.cs
- Cursors.cs
- SspiNegotiationTokenAuthenticator.cs
- NotificationContext.cs
- DataRelationCollection.cs
- _ListenerRequestStream.cs
- AbsoluteQuery.cs
- ExceptionUtil.cs
- followingquery.cs
- __ComObject.cs
- TemplatedWizardStep.cs
- DiagnosticTraceRecords.cs
- httpapplicationstate.cs
- InvalidOperationException.cs
- ClientSession.cs
- CommentAction.cs
- ValidationPropertyAttribute.cs
- ExpanderAutomationPeer.cs
- UIElementParaClient.cs
- FlowDocumentReaderAutomationPeer.cs
- InfoCardSymmetricCrypto.cs
- ChangeNode.cs
- ValidationEventArgs.cs
- PageDeviceFont.cs
- BitmapEffectInput.cs
- VScrollProperties.cs
- EventManager.cs
- TreeViewImageKeyConverter.cs
- XmlDataLoader.cs
- ListenerElementsCollection.cs
- PersonalizationProviderHelper.cs
- TypeConstant.cs
- SerializationStore.cs
- HwndSource.cs
- FormsAuthentication.cs
- WmlCommandAdapter.cs
- Parser.cs
- GenerateTemporaryTargetAssembly.cs
- messageonlyhwndwrapper.cs
- OdbcTransaction.cs
- WindowsEditBox.cs
- SortFieldComparer.cs
- WindowsNonControl.cs
- PromptEventArgs.cs
- RegisteredHiddenField.cs
- StringInfo.cs
- PenContexts.cs
- HtmlGenericControl.cs
- SubclassTypeValidatorAttribute.cs
- PocoPropertyAccessorStrategy.cs
- ButtonFieldBase.cs
- Condition.cs
- counter.cs
- SynchronousChannelMergeEnumerator.cs
- WaitForChangedResult.cs
- Stack.cs
- Baml2006ReaderFrame.cs