Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- ObjectCloneHelper.cs
- OleDbParameterCollection.cs
- FileNotFoundException.cs
- TableHeaderCell.cs
- ProfessionalColorTable.cs
- ColorPalette.cs
- OdbcConnectionFactory.cs
- RenderData.cs
- Selection.cs
- DataTableNameHandler.cs
- RegionInfo.cs
- WebPartDescription.cs
- AttachedAnnotationChangedEventArgs.cs
- ManagedFilter.cs
- KeyManager.cs
- EntityDesignerUtils.cs
- FormatControl.cs
- ReaderWriterLock.cs
- ReachPageContentSerializerAsync.cs
- FileUpload.cs
- Wizard.cs
- JumpList.cs
- DoubleCollectionConverter.cs
- EntityDataSource.cs
- SymbolTable.cs
- unsafenativemethodstextservices.cs
- Pair.cs
- EmptyControlCollection.cs
- EncodingInfo.cs
- SweepDirectionValidation.cs
- PiiTraceSource.cs
- DrawToolTipEventArgs.cs
- TransportBindingElementImporter.cs
- SspiWrapper.cs
- WebBrowserHelper.cs
- ellipse.cs
- CheckBoxBaseAdapter.cs
- FontNameEditor.cs
- PassportAuthenticationModule.cs
- HttpCachePolicyWrapper.cs
- Selector.cs
- OleDbMetaDataFactory.cs
- XmlNavigatorStack.cs
- ApplicationGesture.cs
- PocoEntityKeyStrategy.cs
- XmlDataContract.cs
- PropertyInfo.cs
- CodeGotoStatement.cs
- XmlSchemaSubstitutionGroup.cs
- AnnotationComponentChooser.cs
- Style.cs
- BuildResultCache.cs
- DoubleAnimation.cs
- ParseNumbers.cs
- Single.cs
- MessageBox.cs
- Socket.cs
- TreeNodeCollection.cs
- HandlerFactoryWrapper.cs
- HttpModule.cs
- Expression.DebuggerProxy.cs
- Light.cs
- DateTimeEditor.cs
- TrackBarRenderer.cs
- ScrollViewerAutomationPeer.cs
- XmlCharCheckingReader.cs
- ListViewItem.cs
- RuleRef.cs
- Attributes.cs
- Process.cs
- EntitySqlQueryCacheEntry.cs
- X509CertificateTokenFactoryCredential.cs
- SimpleBitVector32.cs
- _SslState.cs
- ItemList.cs
- EffectiveValueEntry.cs
- Base64Stream.cs
- GridViewRow.cs
- ToolStripKeyboardHandlingService.cs
- TextStore.cs
- SkinBuilder.cs
- StrokeDescriptor.cs
- DefaultAutoFieldGenerator.cs
- SoapParser.cs
- UserInitiatedRoutedEventPermission.cs
- MSHTMLHost.cs
- PropertySourceInfo.cs
- InfiniteIntConverter.cs
- X509Certificate2Collection.cs
- SelectionProcessor.cs
- BinaryObjectReader.cs
- DrawToolTipEventArgs.cs
- StringStorage.cs
- IApplicationTrustManager.cs
- LayoutSettings.cs
- UserPersonalizationStateInfo.cs
- XmlHierarchicalEnumerable.cs
- ObjectHelper.cs
- GeneralTransform3DTo2DTo3D.cs
- DrawingContextWalker.cs