Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Compilation / ConnectionStringsExpressionBuilder.cs / 1 / 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)] [AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripDropDownButton.cs
- AccessDataSource.cs
- ScrollItemProviderWrapper.cs
- HwndSourceKeyboardInputSite.cs
- SafeWaitHandle.cs
- ContainerTracking.cs
- XmlDataSourceNodeDescriptor.cs
- DataSet.cs
- ChannelManager.cs
- ControlUtil.cs
- LightweightEntityWrapper.cs
- DynamicRouteExpression.cs
- DateBoldEvent.cs
- DrawingAttributesDefaultValueFactory.cs
- RawStylusActions.cs
- TdsParserStateObject.cs
- EncoderParameter.cs
- sqlinternaltransaction.cs
- BindingWorker.cs
- Image.cs
- XmlSchemaElement.cs
- TagMapCollection.cs
- ZoomPercentageConverter.cs
- NumberFunctions.cs
- ResourcePermissionBaseEntry.cs
- GridSplitter.cs
- UIElementCollection.cs
- DataGridViewToolTip.cs
- CommandPlan.cs
- CollectionViewProxy.cs
- RangeBaseAutomationPeer.cs
- ApplicationServiceManager.cs
- TextLine.cs
- QilChoice.cs
- ClientTargetCollection.cs
- SystemInfo.cs
- MergePropertyDescriptor.cs
- ProfileSection.cs
- WebExceptionStatus.cs
- CustomValidator.cs
- Logging.cs
- TargetConverter.cs
- CapiSymmetricAlgorithm.cs
- DataGridrowEditEndingEventArgs.cs
- CqlParser.cs
- Dump.cs
- PageScaling.cs
- SQLInt16.cs
- WSTrustFeb2005.cs
- NavigationPropertyEmitter.cs
- DataGridColumn.cs
- DateTimeParse.cs
- CharacterMetrics.cs
- DiscreteKeyFrames.cs
- CheckBoxPopupAdapter.cs
- DiscoveryExceptionDictionary.cs
- ElementNotAvailableException.cs
- DirectoryNotFoundException.cs
- HebrewCalendar.cs
- HtmlInputButton.cs
- JsonWriter.cs
- TabletDevice.cs
- DynamicDataRouteHandler.cs
- SocketInformation.cs
- latinshape.cs
- HotSpot.cs
- Array.cs
- FontFamily.cs
- XmlDataSource.cs
- ToolStripItemEventArgs.cs
- ExtendedProtectionPolicy.cs
- ConstraintCollection.cs
- OletxEnlistment.cs
- DictionaryEntry.cs
- TemplateParser.cs
- VisualStyleTypesAndProperties.cs
- RemotingConfigParser.cs
- InfoCardListRequest.cs
- WasEndpointConfigContainer.cs
- SelectQueryOperator.cs
- StackBuilderSink.cs
- FtpWebResponse.cs
- CategoryAttribute.cs
- ConnectionProviderAttribute.cs
- SHA512Managed.cs
- AuthenticatingEventArgs.cs
- StylusPlugin.cs
- DataServiceKeyAttribute.cs
- DataGridViewDataConnection.cs
- FlagsAttribute.cs
- CodeGen.cs
- OleDbParameter.cs
- xsdvalidator.cs
- IDispatchConstantAttribute.cs
- Serializer.cs
- PersonalizationProviderCollection.cs
- ItemMap.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- DoubleAnimationUsingPath.cs
- MappingModelBuildProvider.cs