Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / ConnectionStringsExpressionBuilder.cs / 1305376 / ConnectionStringsExpressionBuilder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.Security.Permissions; using System.CodeDom; using System.Configuration; using System.Globalization; using System.Web.UI; [ExpressionPrefix("ConnectionStrings")] [ExpressionEditor("System.Web.UI.Design.ConnectionStringsExpressionEditor, " + AssemblyRef.SystemDesign)] public class ConnectionStringsExpressionBuilder : ExpressionBuilder { public override bool SupportsEvaluate { get { return true; } } public override object ParseExpression(string expression, Type propertyType, ExpressionBuilderContext context) { // This code is also copied in ConnectionStringsExpressionEditor.ParseExpression() const string connectionStringSuffix = ".connectionstring"; const string providerNameSuffix = ".providername"; string name = String.Empty; bool connectionString = true; if (expression != null) { if (expression.EndsWith(connectionStringSuffix, StringComparison.OrdinalIgnoreCase)) { name = expression.Substring(0, expression.Length - connectionStringSuffix.Length); } else { if (expression.EndsWith(providerNameSuffix, StringComparison.OrdinalIgnoreCase)) { connectionString = false; name = expression.Substring(0, expression.Length - providerNameSuffix.Length); } else { name = expression; } } } return new Pair(name, connectionString); } public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { Pair p = (Pair)parsedData; string name = (string)p.First; bool connectionString = (bool)p.Second; if (connectionString) { return new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(this.GetType()), "GetConnectionString", new CodePrimitiveExpression(name)); } else { return new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(this.GetType()), "GetConnectionStringProviderName", new CodePrimitiveExpression(name)); } } public override object EvaluateExpression(object target, BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { Pair p = (Pair)parsedData; string name = (string)p.First; bool connectionString = (bool)p.Second; ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[name]; if (connectionString) { return GetConnectionString(name); } else { return GetConnectionStringProviderName(name); } } public static string GetConnectionStringProviderName(string connectionStringName) { ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[connectionStringName]; if (setting == null) { throw new InvalidOperationException(SR.GetString(SR.Connection_string_not_found, connectionStringName)); } return setting.ProviderName; } public static string GetConnectionString(string connectionStringName) { ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[connectionStringName]; if (setting == null) { throw new InvalidOperationException(SR.GetString(SR.Connection_string_not_found, connectionStringName)); } return setting.ConnectionString; } } } // 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
- PeerCollaborationPermission.cs
- HtmlDocument.cs
- RoleServiceManager.cs
- MatrixCamera.cs
- HMAC.cs
- ArgumentsParser.cs
- DataBoundControlHelper.cs
- SessionPageStateSection.cs
- GrammarBuilderBase.cs
- UInt32Storage.cs
- ScrollChrome.cs
- sqlpipe.cs
- ISFTagAndGuidCache.cs
- WebDisplayNameAttribute.cs
- parserscommon.cs
- SspiSecurityToken.cs
- BindingExpression.cs
- HttpHeaderCollection.cs
- MouseActionConverter.cs
- ExpandSegment.cs
- InternalConfigHost.cs
- MetaChildrenColumn.cs
- WindowsGraphicsWrapper.cs
- ProfileSettings.cs
- HyperLink.cs
- XamlPoint3DCollectionSerializer.cs
- WebPartsSection.cs
- WebPartConnection.cs
- SingleKeyFrameCollection.cs
- EventlogProvider.cs
- ExpressionEditorSheet.cs
- BasicKeyConstraint.cs
- CharEnumerator.cs
- CodeTypeParameter.cs
- PrimitiveSchema.cs
- WebPartsPersonalization.cs
- AsyncOperation.cs
- DataSourceXmlSerializer.cs
- XmlStrings.cs
- MbpInfo.cs
- Int64KeyFrameCollection.cs
- ServiceObjectContainer.cs
- SemanticResolver.cs
- HtmlControlPersistable.cs
- XmlWrappingWriter.cs
- Clipboard.cs
- SqlUserDefinedTypeAttribute.cs
- MaskInputRejectedEventArgs.cs
- MetadataItem_Static.cs
- Activity.cs
- ActivityStatusChangeEventArgs.cs
- RewritingValidator.cs
- XmlSchemaElement.cs
- OracleParameter.cs
- EditorAttribute.cs
- IsolatedStoragePermission.cs
- Odbc32.cs
- SoundPlayerAction.cs
- TableParaClient.cs
- SqlLiftIndependentRowExpressions.cs
- QueryContinueDragEvent.cs
- AtomParser.cs
- NewExpression.cs
- WmpBitmapEncoder.cs
- PageTheme.cs
- HttpWebRequest.cs
- ResourcePermissionBase.cs
- EntityTypeBase.cs
- BitmapEffectGeneralTransform.cs
- ConnectionPointCookie.cs
- DataViewSetting.cs
- EmptyEnumerable.cs
- SQLBytesStorage.cs
- XhtmlTextWriter.cs
- RenameRuleObjectDialog.Designer.cs
- BaseValidator.cs
- ReliabilityContractAttribute.cs
- XmlResolver.cs
- Tablet.cs
- FragmentQueryKB.cs
- StorageMappingItemLoader.cs
- PointCollectionValueSerializer.cs
- DataGridViewSelectedRowCollection.cs
- TextBox.cs
- GroupBox.cs
- DesignerHierarchicalDataSourceView.cs
- CollectionContainer.cs
- Stroke2.cs
- ClipboardData.cs
- Matrix.cs
- SqlSupersetValidator.cs
- FirstMatchCodeGroup.cs
- AppDomainShutdownMonitor.cs
- CodeSubDirectory.cs
- DataObject.cs
- TextStore.cs
- GridViewRowCollection.cs
- Page.cs
- UnsafeNativeMethods.cs
- DateTime.cs