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
- CryptoSession.cs
- DataColumn.cs
- NetDataContractSerializer.cs
- XmlSchemaSimpleTypeList.cs
- DataKey.cs
- LabelDesigner.cs
- SqlCachedBuffer.cs
- ToolStripContentPanel.cs
- ZipIOLocalFileDataDescriptor.cs
- TreeNodeStyle.cs
- FrameworkReadOnlyPropertyMetadata.cs
- XhtmlBasicCalendarAdapter.cs
- ToolStripContentPanelRenderEventArgs.cs
- ProfileParameter.cs
- ColumnMapTranslator.cs
- GridViewPageEventArgs.cs
- SqlConnectionPoolProviderInfo.cs
- AppDomainFactory.cs
- BoundPropertyEntry.cs
- HostedImpersonationContext.cs
- OleDbDataAdapter.cs
- OdbcErrorCollection.cs
- AppDomainProtocolHandler.cs
- HwndTarget.cs
- ProcessStartInfo.cs
- Rect.cs
- ResXResourceSet.cs
- DodSequenceMerge.cs
- UrlMappingCollection.cs
- CollectionViewGroup.cs
- WindowsStatusBar.cs
- SystemIPInterfaceProperties.cs
- ProviderCommandInfoUtils.cs
- Matrix.cs
- querybuilder.cs
- _NestedMultipleAsyncResult.cs
- EntitySetRetriever.cs
- DesignerOptionService.cs
- DataSourceXmlSerializationAttribute.cs
- TimeSpanValidatorAttribute.cs
- SecUtil.cs
- SettingsBindableAttribute.cs
- XmlUrlResolver.cs
- EncryptedPackageFilter.cs
- GroupStyle.cs
- SupportingTokenSpecification.cs
- DesignerView.xaml.cs
- CompareInfo.cs
- MeshGeometry3D.cs
- NullableLongSumAggregationOperator.cs
- InstanceDataCollection.cs
- XmlTypeMapping.cs
- BitmapEffectCollection.cs
- SerialPinChanges.cs
- LoginName.cs
- CancellationHandlerDesigner.cs
- ConnectorEditor.cs
- AsyncResult.cs
- Module.cs
- DataGridViewButtonCell.cs
- ComplexPropertyEntry.cs
- ColorAnimationUsingKeyFrames.cs
- WebCodeGenerator.cs
- HttpCacheVary.cs
- SerializationFieldInfo.cs
- PrimaryKeyTypeConverter.cs
- DataGridViewCellConverter.cs
- ListViewGroup.cs
- FormsAuthenticationCredentials.cs
- StringInfo.cs
- URLAttribute.cs
- RuleProcessor.cs
- TextFormatterHost.cs
- ListBindingHelper.cs
- BlurBitmapEffect.cs
- HwndSubclass.cs
- SystemWebCachingSectionGroup.cs
- SystemResourceKey.cs
- PointValueSerializer.cs
- BStrWrapper.cs
- ImmutablePropertyDescriptorGridEntry.cs
- NameValuePair.cs
- XAMLParseException.cs
- HMACMD5.cs
- QuaternionAnimationUsingKeyFrames.cs
- ConfigurationPropertyCollection.cs
- ObjectDisposedException.cs
- GetParentChain.cs
- DefaultSerializationProviderAttribute.cs
- Range.cs
- DynamicScriptObject.cs
- EtwTrace.cs
- SyndicationDeserializer.cs
- XmlILStorageConverter.cs
- NameValueConfigurationElement.cs
- PreviewPrintController.cs
- DbgUtil.cs
- Point4DConverter.cs
- autovalidator.cs
- BasicDesignerLoader.cs