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
- Label.cs
- AdapterUtil.cs
- DatagridviewDisplayedBandsData.cs
- DefaultTraceListener.cs
- PartialTrustVisibleAssembliesSection.cs
- ZipIORawDataFileBlock.cs
- SrgsDocumentParser.cs
- XmlSchemaObjectTable.cs
- InstanceKeyCompleteException.cs
- TextWriterTraceListener.cs
- SafeBitVector32.cs
- ChangeDirector.cs
- DocumentViewerConstants.cs
- BaseAppDomainProtocolHandler.cs
- ServiceReference.cs
- XmlIlGenerator.cs
- ToolStripContentPanel.cs
- WebConfigManager.cs
- WorkflowServiceHostFactory.cs
- ImportOptions.cs
- ApplicationManager.cs
- ChannelManager.cs
- NamespaceDecl.cs
- TextTreeRootTextBlock.cs
- DigitShape.cs
- SchemaHelper.cs
- ProfileSettings.cs
- CodeMethodInvokeExpression.cs
- DataServiceResponse.cs
- ToolStripSeparatorRenderEventArgs.cs
- PanningMessageFilter.cs
- UserThread.cs
- listitem.cs
- CodeTypeDeclarationCollection.cs
- WebBrowsableAttribute.cs
- AutomationEvent.cs
- InputEventArgs.cs
- SQLDoubleStorage.cs
- MediaTimeline.cs
- ColorAnimationBase.cs
- DataList.cs
- BamlRecordReader.cs
- WebConfigurationManager.cs
- CollectionMarkupSerializer.cs
- RequestResizeEvent.cs
- PrinterResolution.cs
- TextTreeRootTextBlock.cs
- SafeNativeMethodsOther.cs
- GeometryCollection.cs
- Model3DGroup.cs
- PostBackOptions.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- BuildResult.cs
- XmlSchemaExporter.cs
- AmbientLight.cs
- SqlConnectionStringBuilder.cs
- LinearGradientBrush.cs
- CheckBoxPopupAdapter.cs
- Base64Stream.cs
- EntityDataSourceWrapperCollection.cs
- NamespaceList.cs
- FlowLayoutSettings.cs
- EllipticalNodeOperations.cs
- RealizationDrawingContextWalker.cs
- EnumerableCollectionView.cs
- UserControlCodeDomTreeGenerator.cs
- ListViewSortEventArgs.cs
- DebugView.cs
- BookmarkOptionsHelper.cs
- HelpEvent.cs
- SqlXmlStorage.cs
- ToolStripLabel.cs
- HttpClientCertificate.cs
- UpdatePanel.cs
- ImplicitInputBrush.cs
- PropertyPath.cs
- CurrentChangingEventManager.cs
- SqlClientWrapperSmiStream.cs
- Highlights.cs
- WeakReferenceKey.cs
- TextContainerHelper.cs
- TypedDataSourceCodeGenerator.cs
- PresentationTraceSources.cs
- FormatterConverter.cs
- XmlHierarchicalEnumerable.cs
- DesignerObjectListAdapter.cs
- BufferedStream.cs
- Math.cs
- SegmentInfo.cs
- DoubleConverter.cs
- RequestDescription.cs
- KnownBoxes.cs
- DragEvent.cs
- XamlPathDataSerializer.cs
- KeyTime.cs
- GraphicsContainer.cs
- SecurityAppliedMessage.cs
- selecteditemcollection.cs
- DataRecordObjectView.cs
- LinkConverter.cs