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
- BindingList.cs
- ReachNamespaceInfo.cs
- DnsEndpointIdentity.cs
- FormsAuthenticationConfiguration.cs
- HttpListenerPrefixCollection.cs
- XsltLoader.cs
- ReturnEventArgs.cs
- TraceListeners.cs
- TimeSpanOrInfiniteConverter.cs
- SuppressMessageAttribute.cs
- RowToParametersTransformer.cs
- HttpContextServiceHost.cs
- DataGridViewColumnTypePicker.cs
- PlacementWorkspace.cs
- SafeArrayRankMismatchException.cs
- CounterCreationData.cs
- TypeUnloadedException.cs
- HwndHostAutomationPeer.cs
- HelpKeywordAttribute.cs
- XmlJsonWriter.cs
- BlurBitmapEffect.cs
- LogSwitch.cs
- HwndTarget.cs
- TransactionChannelFactory.cs
- AspNetSynchronizationContext.cs
- CodeActivity.cs
- SqlIdentifier.cs
- DbConnectionHelper.cs
- TypeInfo.cs
- EntityContainer.cs
- SpAudioStreamWrapper.cs
- RadioButton.cs
- OpenTypeLayoutCache.cs
- ObjectPersistData.cs
- remotingproxy.cs
- Util.cs
- brushes.cs
- MsmqIntegrationSecurityMode.cs
- StyleSheetRefUrlEditor.cs
- NamespaceEmitter.cs
- XmlValidatingReader.cs
- COAUTHINFO.cs
- RightsManagementLicense.cs
- WebPartHeaderCloseVerb.cs
- SQLMembershipProvider.cs
- XPathQilFactory.cs
- CryptoApi.cs
- NullableDecimalAverageAggregationOperator.cs
- typedescriptorpermission.cs
- DataGrid.cs
- Expression.cs
- LocatorGroup.cs
- ToolZone.cs
- StackOverflowException.cs
- ParameterToken.cs
- ReversePositionQuery.cs
- SafeFindHandle.cs
- SequenceNumber.cs
- ColorConvertedBitmap.cs
- ConditionalAttribute.cs
- XpsS0ValidatingLoader.cs
- BitmapEffectInput.cs
- QilUnary.cs
- WebPartEditVerb.cs
- MessageAction.cs
- UrlAuthFailedErrorFormatter.cs
- EntityReference.cs
- PerformanceCounter.cs
- TableChangeProcessor.cs
- ZipIOBlockManager.cs
- UrlMapping.cs
- MenuItemAutomationPeer.cs
- MemberMemberBinding.cs
- ScriptDescriptor.cs
- DriveNotFoundException.cs
- FontStyle.cs
- CodePageUtils.cs
- XmlReflectionImporter.cs
- EntitySqlException.cs
- AuthenticationException.cs
- TemplateControlBuildProvider.cs
- TemplateContentLoader.cs
- HtmlToClrEventProxy.cs
- DllHostInitializer.cs
- IPPacketInformation.cs
- DataTableClearEvent.cs
- CompiledXpathExpr.cs
- Classification.cs
- SerialPort.cs
- TextEffectCollection.cs
- MsmqSecureHashAlgorithm.cs
- MarkupCompilePass2.cs
- DialogResultConverter.cs
- ImplicitInputBrush.cs
- PartialCachingControl.cs
- OutputCacheProfileCollection.cs
- ActivationServices.cs
- SafeRightsManagementQueryHandle.cs
- XmlSchemaExternal.cs
- CryptoHelper.cs