Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Compilation / ConnectionStringsExpressionBuilder.cs / 2 / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SyncOperationState.cs
- NoPersistScope.cs
- OneOfElement.cs
- DbConnectionInternal.cs
- OleDbConnectionInternal.cs
- DataGridViewBand.cs
- UniqueConstraint.cs
- InputMethodStateChangeEventArgs.cs
- GZipDecoder.cs
- ParserContext.cs
- XmlNode.cs
- ProcessRequestArgs.cs
- IIS7UserPrincipal.cs
- RecordsAffectedEventArgs.cs
- PickBranch.cs
- EntityContainerEmitter.cs
- DataTableReaderListener.cs
- IndicCharClassifier.cs
- PrinterUnitConvert.cs
- ClientSettings.cs
- ValidatorUtils.cs
- DatatypeImplementation.cs
- SystemBrushes.cs
- InstallerTypeAttribute.cs
- PersonalizationStateQuery.cs
- ChannelServices.cs
- AuthenticationSection.cs
- Monitor.cs
- FastPropertyAccessor.cs
- TransactionContext.cs
- DateTimeUtil.cs
- JavaScriptString.cs
- MasterPage.cs
- StorageConditionPropertyMapping.cs
- DataGridViewTopRowAccessibleObject.cs
- Vertex.cs
- Int64Storage.cs
- RawAppCommandInputReport.cs
- SimpleWorkerRequest.cs
- SmtpNetworkElement.cs
- ParameterModifier.cs
- XamlHostingConfiguration.cs
- _SSPIWrapper.cs
- SemanticBasicElement.cs
- OutKeywords.cs
- QueryCreatedEventArgs.cs
- ProcessHostServerConfig.cs
- Pkcs7Signer.cs
- EventHandlersStore.cs
- GenericParameterDataContract.cs
- ContainerVisual.cs
- Bitmap.cs
- DataGridToolTip.cs
- TrackPointCollection.cs
- PopupControlService.cs
- StrokeCollection.cs
- DataServiceRequestException.cs
- SymmetricCryptoHandle.cs
- ProbeMatchesCD1.cs
- HasCopySemanticsAttribute.cs
- TabItemAutomationPeer.cs
- UnsafeNativeMethods.cs
- EdmType.cs
- OdbcDataReader.cs
- KeyFrames.cs
- SpecularMaterial.cs
- XMLSyntaxException.cs
- OrthographicCamera.cs
- TransformerInfoCollection.cs
- HtmlButton.cs
- CqlWriter.cs
- DecoderFallbackWithFailureFlag.cs
- EncoderParameter.cs
- NavigateUrlConverter.cs
- AdCreatedEventArgs.cs
- ArrayHelper.cs
- DataGridToolTip.cs
- LineUtil.cs
- DBProviderConfigurationHandler.cs
- XmlWrappingWriter.cs
- PagesChangedEventArgs.cs
- ActiveXSite.cs
- UserNameSecurityTokenAuthenticator.cs
- WindowsAuthenticationModule.cs
- XamlTemplateSerializer.cs
- DiagnosticsConfigurationHandler.cs
- EndpointAddressElementBase.cs
- ActivityXRefConverter.cs
- XmlTextReaderImplHelpers.cs
- SqlDataSourceSelectingEventArgs.cs
- LongPath.cs
- TextTreeTextElementNode.cs
- XmlRootAttribute.cs
- UnsafeNativeMethods.cs
- Speller.cs
- ViewBase.cs
- SoapInteropTypes.cs
- CellConstant.cs
- XmlMessageFormatter.cs
- InputManager.cs