Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MouseWheelEventArgs.cs
- XamlTypeMapper.cs
- EnvironmentPermission.cs
- TypeBinaryExpression.cs
- GroupBox.cs
- MissingSatelliteAssemblyException.cs
- MenuItem.cs
- TransformConverter.cs
- IndexedGlyphRun.cs
- TypeContext.cs
- ArraySortHelper.cs
- SimpleHandlerFactory.cs
- objectresult_tresulttype.cs
- InstancePersistenceCommandException.cs
- DataGridViewSelectedColumnCollection.cs
- XmlValueConverter.cs
- ClickablePoint.cs
- XPathCompileException.cs
- ChineseLunisolarCalendar.cs
- SamlAttributeStatement.cs
- mil_commands.cs
- MetadataWorkspace.cs
- PeerPresenceInfo.cs
- HotSpotCollection.cs
- MailWriter.cs
- PolyQuadraticBezierSegment.cs
- XPathDescendantIterator.cs
- QueryRewriter.cs
- KeyMatchBuilder.cs
- SrgsRuleRef.cs
- DragCompletedEventArgs.cs
- TextReader.cs
- WindowsGraphicsCacheManager.cs
- XmlSchemas.cs
- BindingsCollection.cs
- DocumentViewerBase.cs
- XmlHierarchyData.cs
- ClientCultureInfo.cs
- SrgsDocumentParser.cs
- DuplicateDetector.cs
- Section.cs
- FixedSOMElement.cs
- NameTable.cs
- DoubleStorage.cs
- AttachedProperty.cs
- Converter.cs
- XmlEncoding.cs
- Queue.cs
- CompModSwitches.cs
- Icon.cs
- ProfilePropertyNameValidator.cs
- KeyGesture.cs
- TextEditorSpelling.cs
- ParameterModifier.cs
- EventMappingSettingsCollection.cs
- OdbcError.cs
- SqlNotificationEventArgs.cs
- ContravarianceAdapter.cs
- ViewDesigner.cs
- HtmlTable.cs
- QilParameter.cs
- AttachInfo.cs
- ServiceDescriptionImporter.cs
- XmlValidatingReaderImpl.cs
- CompositeCollection.cs
- PersonalizableTypeEntry.cs
- DPTypeDescriptorContext.cs
- ImageButton.cs
- CustomWebEventKey.cs
- Soap.cs
- XmlILOptimizerVisitor.cs
- NamespaceInfo.cs
- QilLiteral.cs
- TextFormatter.cs
- ColumnResizeUndoUnit.cs
- SqlGenericUtil.cs
- ReaderOutput.cs
- EncodingTable.cs
- SqlRowUpdatingEvent.cs
- SqlDataSourceCustomCommandEditor.cs
- BulletChrome.cs
- PaintEvent.cs
- X509DefaultServiceCertificateElement.cs
- RouteItem.cs
- CommonObjectSecurity.cs
- DesignerForm.cs
- WebServiceTypeData.cs
- EncodingInfo.cs
- ResourceWriter.cs
- HttpConfigurationSystem.cs
- EnumCodeDomSerializer.cs
- PartialList.cs
- CacheOutputQuery.cs
- DocumentViewerBase.cs
- StylusButtonEventArgs.cs
- Color.cs
- SafeRightsManagementPubHandle.cs
- SubMenuStyle.cs
- FontFaceLayoutInfo.cs
- ObjectCacheSettings.cs