Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityConnectionStringBuilder.cs / 1305376 / EntityConnectionStringBuilder.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Data; using System.Data.Common; using System.Configuration; using System.Globalization; using System.Diagnostics.CodeAnalysis; using System.Diagnostics; using System.ComponentModel; namespace System.Data.EntityClient { ////// Class representing a connection string builder for the entity client provider /// [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "EntityConnectionStringBuilder follows the naming convention of DbConnectionStringBuilder.")] [SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Justification = "There is no applicable strongly-typed implementation of CopyTo.")] public sealed class EntityConnectionStringBuilder : DbConnectionStringBuilder { // Names of parameters to look for in the connection string internal const string NameParameterName = "name"; internal const string MetadataParameterName = "metadata"; internal const string ProviderParameterName = "provider"; internal const string ProviderConnectionStringParameterName = "provider connection string"; // An array to hold the keywords private static readonly string[] s_validKeywords = new string[] { NameParameterName, MetadataParameterName, ProviderParameterName, ProviderConnectionStringParameterName }; private static Hashtable s_synonyms; // Information and data used by the connection private string _namedConnectionName; private string _providerName; private string _metadataLocations; private string _storeProviderConnectionString; ////// Constructs the EntityConnectionStringBuilder object /// public EntityConnectionStringBuilder() { // Everything just defaults to null } ////// Constructs the EntityConnectionStringBuilder object with a connection string /// /// The connection string to initialize this builder public EntityConnectionStringBuilder(string connectionString) { this.ConnectionString = connectionString; } ////// Gets or sets the named connection name in the connection string /// [DisplayName("Name")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_NamedConnectionString)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Name)] [RefreshProperties(RefreshProperties.All)] public string Name { get { return this._namedConnectionName ?? ""; } set { this._namedConnectionName = value; base[NameParameterName] = value; } } ////// Gets or sets the name of the underlying .NET Framework data provider in the connection string /// [DisplayName("Provider")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Source)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Provider)] [RefreshProperties(RefreshProperties.All)] public string Provider { get { return this._providerName ?? ""; } set { this._providerName = value; base[ProviderParameterName] = value; } } ////// Gets or sets the metadata locations in the connection string, which is a pipe-separated sequence /// of paths to folders and individual files /// [DisplayName("Metadata")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Context)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Metadata)] [RefreshProperties(RefreshProperties.All)] public string Metadata { get { return this._metadataLocations ?? ""; } set { this._metadataLocations = value; base[MetadataParameterName] = value; } } ////// Gets or sets the inner connection string in the connection string /// [DisplayName("Provider Connection String")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Source)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_ProviderConnectionString)] [RefreshProperties(RefreshProperties.All)] public string ProviderConnectionString { get { return this._storeProviderConnectionString ?? ""; } set { this._storeProviderConnectionString = value; base[ProviderConnectionStringParameterName] = value; } } ////// Gets whether the EntityConnectionStringBuilder has a fixed size /// public override bool IsFixedSize { get { return true; } } ////// Gets a collection of all keywords used by EntityConnectionStringBuilder /// public override ICollection Keys { get { return new System.Collections.ObjectModel.ReadOnlyCollection(s_validKeywords); } } /// /// Returns a hash table object containing all the valid keywords. This is really the same as the Keys /// property, it's just that the returned object is a hash table. /// internal static Hashtable Synonyms { get { // Build the synonyms table if we don't have one if (s_synonyms == null) { Hashtable table = new Hashtable(s_validKeywords.Length); foreach (string keyword in s_validKeywords) { table.Add(keyword, keyword); } s_synonyms = table; } return s_synonyms; } } ////// Gets or sets the value associated with the keyword /// public override object this[string keyword] { get { EntityUtil.CheckArgumentNull(keyword, "keyword"); // Just access the properties to get the value since the fields, which the properties will be accessing, will // have already been set when the connection string is set if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Metadata; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.ProviderConnectionString; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Name; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Provider; } throw EntityUtil.KeywordNotSupported(keyword); } set { EntityUtil.CheckArgumentNull(keyword, "keyword"); // If a null value is set, just remove the parameter and return if (value == null) { this.Remove(keyword); return; } // Since all of our parameters must be string value, perform the cast here and check string stringValue = value as string; if (stringValue == null) { throw EntityUtil.Argument(System.Data.Entity.Strings.EntityClient_ValueNotString, "value"); } // Just access the properties to get the value since the fields, which the properties will be accessing, will // have already been set when the connection string is set if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Metadata = stringValue; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.ProviderConnectionString = stringValue; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Name = stringValue; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Provider = stringValue; } else { throw EntityUtil.KeywordNotSupported(keyword); } } } ////// Clear all the parameters in the connection string /// public override void Clear() { base.Clear(); this._namedConnectionName = null; this._providerName = null; this._metadataLocations = null; this._storeProviderConnectionString = null; } ////// Determine if this connection string builder contains a specific key /// /// The keyword to find in this connection string builder ///True if this connections string builder contains the specific key public override bool ContainsKey(string keyword) { EntityUtil.CheckArgumentNull(keyword, "keyword"); foreach (string validKeyword in s_validKeywords) { if (validKeyword.Equals(keyword, StringComparison.OrdinalIgnoreCase)) { return true; } } return false; } ////// Gets the value of the given keyword, returns false if there isn't a value with the given keyword /// /// The keyword specifying the name of the parameter to retrieve /// The value retrieved ///True if the value is retrieved public override bool TryGetValue(string keyword, out object value) { EntityUtil.CheckArgumentNull(keyword, "keyword"); if (ContainsKey(keyword)) { value = this[keyword]; return true; } value = null; return false; } ////// Removes a parameter from the builder /// /// The keyword specifying the name of the parameter to remove ///True if the parameter is removed public override bool Remove(string keyword) { EntityUtil.CheckArgumentNull(keyword, "keyword"); // Convert the given object into a string if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._metadataLocations = null; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._storeProviderConnectionString = null; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._namedConnectionName = null; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._providerName = null; } return base.Remove(keyword); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Data; using System.Data.Common; using System.Configuration; using System.Globalization; using System.Diagnostics.CodeAnalysis; using System.Diagnostics; using System.ComponentModel; namespace System.Data.EntityClient { ////// Class representing a connection string builder for the entity client provider /// [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "EntityConnectionStringBuilder follows the naming convention of DbConnectionStringBuilder.")] [SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Justification = "There is no applicable strongly-typed implementation of CopyTo.")] public sealed class EntityConnectionStringBuilder : DbConnectionStringBuilder { // Names of parameters to look for in the connection string internal const string NameParameterName = "name"; internal const string MetadataParameterName = "metadata"; internal const string ProviderParameterName = "provider"; internal const string ProviderConnectionStringParameterName = "provider connection string"; // An array to hold the keywords private static readonly string[] s_validKeywords = new string[] { NameParameterName, MetadataParameterName, ProviderParameterName, ProviderConnectionStringParameterName }; private static Hashtable s_synonyms; // Information and data used by the connection private string _namedConnectionName; private string _providerName; private string _metadataLocations; private string _storeProviderConnectionString; ////// Constructs the EntityConnectionStringBuilder object /// public EntityConnectionStringBuilder() { // Everything just defaults to null } ////// Constructs the EntityConnectionStringBuilder object with a connection string /// /// The connection string to initialize this builder public EntityConnectionStringBuilder(string connectionString) { this.ConnectionString = connectionString; } ////// Gets or sets the named connection name in the connection string /// [DisplayName("Name")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_NamedConnectionString)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Name)] [RefreshProperties(RefreshProperties.All)] public string Name { get { return this._namedConnectionName ?? ""; } set { this._namedConnectionName = value; base[NameParameterName] = value; } } ////// Gets or sets the name of the underlying .NET Framework data provider in the connection string /// [DisplayName("Provider")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Source)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Provider)] [RefreshProperties(RefreshProperties.All)] public string Provider { get { return this._providerName ?? ""; } set { this._providerName = value; base[ProviderParameterName] = value; } } ////// Gets or sets the metadata locations in the connection string, which is a pipe-separated sequence /// of paths to folders and individual files /// [DisplayName("Metadata")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Context)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_Metadata)] [RefreshProperties(RefreshProperties.All)] public string Metadata { get { return this._metadataLocations ?? ""; } set { this._metadataLocations = value; base[MetadataParameterName] = value; } } ////// Gets or sets the inner connection string in the connection string /// [DisplayName("Provider Connection String")] [EntityResCategoryAttribute(EntityRes.EntityDataCategory_Source)] [EntityResDescriptionAttribute(EntityRes.EntityConnectionString_ProviderConnectionString)] [RefreshProperties(RefreshProperties.All)] public string ProviderConnectionString { get { return this._storeProviderConnectionString ?? ""; } set { this._storeProviderConnectionString = value; base[ProviderConnectionStringParameterName] = value; } } ////// Gets whether the EntityConnectionStringBuilder has a fixed size /// public override bool IsFixedSize { get { return true; } } ////// Gets a collection of all keywords used by EntityConnectionStringBuilder /// public override ICollection Keys { get { return new System.Collections.ObjectModel.ReadOnlyCollection(s_validKeywords); } } /// /// Returns a hash table object containing all the valid keywords. This is really the same as the Keys /// property, it's just that the returned object is a hash table. /// internal static Hashtable Synonyms { get { // Build the synonyms table if we don't have one if (s_synonyms == null) { Hashtable table = new Hashtable(s_validKeywords.Length); foreach (string keyword in s_validKeywords) { table.Add(keyword, keyword); } s_synonyms = table; } return s_synonyms; } } ////// Gets or sets the value associated with the keyword /// public override object this[string keyword] { get { EntityUtil.CheckArgumentNull(keyword, "keyword"); // Just access the properties to get the value since the fields, which the properties will be accessing, will // have already been set when the connection string is set if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Metadata; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.ProviderConnectionString; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Name; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { return this.Provider; } throw EntityUtil.KeywordNotSupported(keyword); } set { EntityUtil.CheckArgumentNull(keyword, "keyword"); // If a null value is set, just remove the parameter and return if (value == null) { this.Remove(keyword); return; } // Since all of our parameters must be string value, perform the cast here and check string stringValue = value as string; if (stringValue == null) { throw EntityUtil.Argument(System.Data.Entity.Strings.EntityClient_ValueNotString, "value"); } // Just access the properties to get the value since the fields, which the properties will be accessing, will // have already been set when the connection string is set if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Metadata = stringValue; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.ProviderConnectionString = stringValue; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Name = stringValue; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this.Provider = stringValue; } else { throw EntityUtil.KeywordNotSupported(keyword); } } } ////// Clear all the parameters in the connection string /// public override void Clear() { base.Clear(); this._namedConnectionName = null; this._providerName = null; this._metadataLocations = null; this._storeProviderConnectionString = null; } ////// Determine if this connection string builder contains a specific key /// /// The keyword to find in this connection string builder ///True if this connections string builder contains the specific key public override bool ContainsKey(string keyword) { EntityUtil.CheckArgumentNull(keyword, "keyword"); foreach (string validKeyword in s_validKeywords) { if (validKeyword.Equals(keyword, StringComparison.OrdinalIgnoreCase)) { return true; } } return false; } ////// Gets the value of the given keyword, returns false if there isn't a value with the given keyword /// /// The keyword specifying the name of the parameter to retrieve /// The value retrieved ///True if the value is retrieved public override bool TryGetValue(string keyword, out object value) { EntityUtil.CheckArgumentNull(keyword, "keyword"); if (ContainsKey(keyword)) { value = this[keyword]; return true; } value = null; return false; } ////// Removes a parameter from the builder /// /// The keyword specifying the name of the parameter to remove ///True if the parameter is removed public override bool Remove(string keyword) { EntityUtil.CheckArgumentNull(keyword, "keyword"); // Convert the given object into a string if (string.Compare(keyword, MetadataParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._metadataLocations = null; } else if (string.Compare(keyword, ProviderConnectionStringParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._storeProviderConnectionString = null; } else if (string.Compare(keyword, NameParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._namedConnectionName = null; } else if (string.Compare(keyword, ProviderParameterName, StringComparison.OrdinalIgnoreCase) == 0) { this._providerName = null; } return base.Remove(keyword); } } } // 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
- BaseTemplateBuildProvider.cs
- JsonWriter.cs
- DocumentSequence.cs
- WorkflowRuntimeElement.cs
- SchemaImporterExtensionElementCollection.cs
- SessionStateContainer.cs
- PermissionToken.cs
- IDispatchConstantAttribute.cs
- _BufferOffsetSize.cs
- CheckBoxPopupAdapter.cs
- PauseStoryboard.cs
- OleServicesContext.cs
- TemplateXamlTreeBuilder.cs
- ListBindingConverter.cs
- ToolStripTextBox.cs
- WebRequestModuleElementCollection.cs
- SoapClientMessage.cs
- MultiTouchSystemGestureLogic.cs
- AutoGeneratedField.cs
- SmiMetaDataProperty.cs
- DynamicPropertyReader.cs
- CheckBoxAutomationPeer.cs
- EntityDataSourceSelectedEventArgs.cs
- InputMethod.cs
- XmlAttributeCache.cs
- OrCondition.cs
- SerializationObjectManager.cs
- InkCanvasInnerCanvas.cs
- ReadContentAsBinaryHelper.cs
- BuildResultCache.cs
- ReflectionPermission.cs
- Command.cs
- BaseDataList.cs
- ZipFileInfo.cs
- LookupNode.cs
- NamedPipeConnectionPoolSettings.cs
- WindowsListViewItemStartMenu.cs
- FontSourceCollection.cs
- ReaderWriterLock.cs
- UdpContractFilterBehavior.cs
- SiteMapNode.cs
- StorageEndPropertyMapping.cs
- StringComparer.cs
- Popup.cs
- BufferedStream.cs
- ScrollBarAutomationPeer.cs
- AccessibleObject.cs
- Storyboard.cs
- CacheDependency.cs
- LeftCellWrapper.cs
- CodeConstructor.cs
- StreamingContext.cs
- WizardPanelChangingEventArgs.cs
- ResXDataNode.cs
- XDeferredAxisSource.cs
- GridViewRowPresenterBase.cs
- HtmlHistory.cs
- UmAlQuraCalendar.cs
- ConvertEvent.cs
- SafeViewOfFileHandle.cs
- CodeMemberProperty.cs
- RIPEMD160.cs
- SplitterPanel.cs
- DocumentDesigner.cs
- MenuScrollingVisibilityConverter.cs
- ObjectDataProvider.cs
- ControllableStoryboardAction.cs
- CssClassPropertyAttribute.cs
- Emitter.cs
- IODescriptionAttribute.cs
- DBBindings.cs
- ComponentRenameEvent.cs
- sqlinternaltransaction.cs
- Privilege.cs
- DesignOnlyAttribute.cs
- ValidationContext.cs
- ToolStripTemplateNode.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- TimelineCollection.cs
- TargetException.cs
- DropDownHolder.cs
- XmlSerializationReader.cs
- XmlSerializer.cs
- SQLSingle.cs
- QueueProcessor.cs
- PrintingPermissionAttribute.cs
- ImageButton.cs
- SiteMapSection.cs
- ResXResourceReader.cs
- UndoEngine.cs
- Peer.cs
- RotateTransform3D.cs
- DefaultSettingsSection.cs
- DataSourceSelectArguments.cs
- BaseServiceProvider.cs
- UnsafeNativeMethods.cs
- WebPartMenu.cs
- XmlCharacterData.cs
- JsonUriDataContract.cs
- ElementNotAvailableException.cs