Code:
/ FX-1434 / FX-1434 / 1.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
- DateTimeConverter2.cs
- ThumbAutomationPeer.cs
- SortedList.cs
- PageThemeCodeDomTreeGenerator.cs
- BrowserDefinition.cs
- HttpListenerPrefixCollection.cs
- DbParameterHelper.cs
- WindowsAuthenticationModule.cs
- ComboBoxItem.cs
- InternalPermissions.cs
- SettingsProperty.cs
- OracleFactory.cs
- UnionCodeGroup.cs
- MessageTransmitTraceRecord.cs
- SmtpSection.cs
- JsonWriterDelegator.cs
- TrustExchangeException.cs
- XmlILOptimizerVisitor.cs
- ResolveNameEventArgs.cs
- XPathItem.cs
- ThreadStartException.cs
- SecurityCredentialsManager.cs
- WeakRefEnumerator.cs
- PackagePart.cs
- DynamicRouteExpression.cs
- NonParentingControl.cs
- SignatureToken.cs
- CodeNamespace.cs
- BindableAttribute.cs
- Authorization.cs
- BindableTemplateBuilder.cs
- AuthorizationPolicyTypeElement.cs
- VScrollBar.cs
- DataExpression.cs
- SystemResources.cs
- DataFormats.cs
- DetailsViewCommandEventArgs.cs
- ICspAsymmetricAlgorithm.cs
- TypeUnloadedException.cs
- WebEventCodes.cs
- ListSortDescriptionCollection.cs
- FixedSOMPageConstructor.cs
- FixedLineResult.cs
- ListViewUpdateEventArgs.cs
- ListDictionaryInternal.cs
- Nodes.cs
- DispatchWrapper.cs
- EdgeModeValidation.cs
- OleDbSchemaGuid.cs
- WpfMemberInvoker.cs
- ExpressionConverter.cs
- MatrixTransform.cs
- ResourceManager.cs
- DefaultTextStore.cs
- SplineKeyFrames.cs
- SystemResourceHost.cs
- ConnectionManagementSection.cs
- TraceSection.cs
- PerspectiveCamera.cs
- XmlComment.cs
- SqlParameter.cs
- wgx_render.cs
- DataSourceCacheDurationConverter.cs
- BufferedStream.cs
- PerfService.cs
- DataServiceStreamProviderWrapper.cs
- CroppedBitmap.cs
- EncryptedPackageFilter.cs
- Facet.cs
- XmlWhitespace.cs
- TextEmbeddedObject.cs
- PageSettings.cs
- XsdDateTime.cs
- SessionState.cs
- InstancePersistenceException.cs
- CmsInterop.cs
- TextEndOfParagraph.cs
- CompilerCollection.cs
- AuthenticationModuleElement.cs
- WindowsFormsLinkLabel.cs
- EntityStoreSchemaFilterEntry.cs
- ClickablePoint.cs
- JournalEntry.cs
- HttpRequestBase.cs
- TableLayoutStyle.cs
- InvokeHandlers.cs
- TouchFrameEventArgs.cs
- TargetConverter.cs
- MembershipSection.cs
- FormClosedEvent.cs
- pingexception.cs
- PolicyValidationException.cs
- Int32Rect.cs
- ClientUrlResolverWrapper.cs
- BamlRecordReader.cs
- DataGridViewLinkColumn.cs
- VectorCollectionValueSerializer.cs
- BitmapScalingModeValidation.cs
- SystemIPInterfaceProperties.cs
- OleDbRowUpdatingEvent.cs