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
- CodeCatchClauseCollection.cs
- _emptywebproxy.cs
- HostingEnvironmentException.cs
- ConnectionPoolManager.cs
- EncryptedXml.cs
- Terminate.cs
- HashMembershipCondition.cs
- DataGridPageChangedEventArgs.cs
- IndividualDeviceConfig.cs
- SQLDecimalStorage.cs
- BindingValueChangedEventArgs.cs
- InheritanceAttribute.cs
- SystemIPInterfaceStatistics.cs
- ZipFileInfo.cs
- GeneralEndpointIdentity.cs
- NodeFunctions.cs
- ItemsPresenter.cs
- HttpListenerException.cs
- ImageSourceValueSerializer.cs
- ContentPresenter.cs
- FileSystemEventArgs.cs
- TabPanel.cs
- Security.cs
- EntityProviderFactory.cs
- Vector3DKeyFrameCollection.cs
- EncoderParameters.cs
- LookupBindingPropertiesAttribute.cs
- MediaElement.cs
- RtfControls.cs
- AnnotationService.cs
- UIElementParagraph.cs
- VectorAnimationBase.cs
- PointF.cs
- ResourceBinder.cs
- EventProviderBase.cs
- Int64Storage.cs
- InputProcessorProfilesLoader.cs
- TypeDescriptorContext.cs
- TextEditorTables.cs
- PresentationAppDomainManager.cs
- ISAPIWorkerRequest.cs
- DictionaryEntry.cs
- SafeUserTokenHandle.cs
- UdpDiscoveryEndpointElement.cs
- WebPartManagerInternals.cs
- GridViewRowPresenterBase.cs
- EventProviderBase.cs
- SemanticTag.cs
- OciEnlistContext.cs
- ClipboardProcessor.cs
- WinEventQueueItem.cs
- DynamicField.cs
- DeviceContext2.cs
- OleCmdHelper.cs
- StringUtil.cs
- ObjectResult.cs
- TypeDependencyAttribute.cs
- BrowserCapabilitiesCompiler.cs
- MethodAccessException.cs
- ImageIndexConverter.cs
- StylusPlugin.cs
- Add.cs
- DataComponentNameHandler.cs
- EditorPartCollection.cs
- ServiceControllerDesigner.cs
- SnapshotChangeTrackingStrategy.cs
- AspProxy.cs
- SafeNativeMethodsOther.cs
- SqlCharStream.cs
- XXXInfos.cs
- DBBindings.cs
- ListBindableAttribute.cs
- BadImageFormatException.cs
- MatrixCamera.cs
- WizardStepBase.cs
- MediaElementAutomationPeer.cs
- ImageListUtils.cs
- EditCommandColumn.cs
- Model3DGroup.cs
- XmlObjectSerializerReadContextComplex.cs
- DataGridCommandEventArgs.cs
- FileVersion.cs
- Walker.cs
- Accessible.cs
- Psha1DerivedKeyGeneratorHelper.cs
- CompilerWrapper.cs
- VirtualizingStackPanel.cs
- ComponentConverter.cs
- DispatchOperation.cs
- Splitter.cs
- XhtmlTextWriter.cs
- CollectionChangeEventArgs.cs
- XmlAutoDetectWriter.cs
- _NetRes.cs
- LineServices.cs
- IdentityReference.cs
- ZipIOLocalFileHeader.cs
- PageThemeCodeDomTreeGenerator.cs
- HelpProvider.cs
- MemoryStream.cs