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
- StructuredTypeInfo.cs
- AccessKeyManager.cs
- HtmlInputImage.cs
- XmlIncludeAttribute.cs
- Pkcs7Recipient.cs
- ExpressionEditorAttribute.cs
- COM2ExtendedUITypeEditor.cs
- DataSourceConverter.cs
- InkCanvas.cs
- PageEventArgs.cs
- Margins.cs
- TextTreeNode.cs
- SBCSCodePageEncoding.cs
- DeflateEmulationStream.cs
- CalloutQueueItem.cs
- Button.cs
- TypeDescriptionProviderAttribute.cs
- GridViewUpdateEventArgs.cs
- MessageContractImporter.cs
- WMIInterop.cs
- ReadOnlyKeyedCollection.cs
- XsltConvert.cs
- DetailsViewRowCollection.cs
- ModelEditingScope.cs
- RichTextBoxConstants.cs
- UniqueConstraint.cs
- QilStrConcatenator.cs
- RelationshipSet.cs
- SynchronizedInputPattern.cs
- AttributeConverter.cs
- ElementHostPropertyMap.cs
- WebBrowsableAttribute.cs
- InputProcessorProfiles.cs
- Privilege.cs
- WebPartConnectVerb.cs
- KeyConverter.cs
- ViewgenGatekeeper.cs
- XmlSchemaCollection.cs
- ApplicationContext.cs
- ViewStateException.cs
- RtfToXamlReader.cs
- LineInfo.cs
- ClientBuildManagerCallback.cs
- RijndaelManagedTransform.cs
- MessageQueueEnumerator.cs
- DetailsViewDeleteEventArgs.cs
- ChannelDemuxer.cs
- ToolTipAutomationPeer.cs
- DiagnosticTrace.cs
- OpenFileDialog.cs
- CodeValidator.cs
- JoinTreeNode.cs
- FilteredReadOnlyMetadataCollection.cs
- FileDetails.cs
- InboundActivityHelper.cs
- SafeNativeMethodsOther.cs
- FixedSOMContainer.cs
- TreeNodeMouseHoverEvent.cs
- CodeArgumentReferenceExpression.cs
- SortFieldComparer.cs
- AssemblyBuilderData.cs
- LocalBuilder.cs
- DbConnectionStringCommon.cs
- HtmlHead.cs
- WebEventCodes.cs
- XmlFormatExtensionPointAttribute.cs
- InstanceBehavior.cs
- DynamicActivity.cs
- TransactionManager.cs
- MemberPath.cs
- GuidelineCollection.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- PersonalizationStateInfoCollection.cs
- ChangePassword.cs
- PanelStyle.cs
- PathFigure.cs
- Triangle.cs
- CurrencyWrapper.cs
- ItemCollection.cs
- EtwTrace.cs
- PositiveTimeSpanValidator.cs
- LocalizableAttribute.cs
- HyperLink.cs
- Pen.cs
- WCFServiceClientProxyGenerator.cs
- NativeMethods.cs
- DataObjectMethodAttribute.cs
- BidOverLoads.cs
- SimpleHandlerBuildProvider.cs
- WebPartZone.cs
- coordinatorfactory.cs
- TabItem.cs
- ListBox.cs
- XsdBuilder.cs
- ValueSerializerAttribute.cs
- ISAPIWorkerRequest.cs
- SerializerWriterEventHandlers.cs
- DocumentReferenceCollection.cs
- VerificationException.cs
- GeometryModel3D.cs