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
- SQLMoneyStorage.cs
- CheckableControlBaseAdapter.cs
- ProxyElement.cs
- InfoCardCryptoHelper.cs
- Win32.cs
- LoginName.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- EditorServiceContext.cs
- RenderContext.cs
- EncoderParameter.cs
- BaseComponentEditor.cs
- InputScopeAttribute.cs
- returneventsaver.cs
- LongMinMaxAggregationOperator.cs
- CategoryNameCollection.cs
- HuffCodec.cs
- Convert.cs
- FixedSOMTableCell.cs
- BidOverLoads.cs
- JulianCalendar.cs
- CFGGrammar.cs
- _FixedSizeReader.cs
- EncoderBestFitFallback.cs
- WSHttpSecurityElement.cs
- FlowPosition.cs
- QueryContext.cs
- Model3D.cs
- SqlProfileProvider.cs
- WebHostedComPlusServiceHost.cs
- ControlLocalizer.cs
- CompareValidator.cs
- DropTarget.cs
- DataTableReaderListener.cs
- PersonalizationStateInfo.cs
- DataObjectFieldAttribute.cs
- NameValueCache.cs
- CodeMemberEvent.cs
- ApplicationFileParser.cs
- XsltContext.cs
- DbParameterHelper.cs
- ResolveMatchesMessage11.cs
- XmlSchemaImport.cs
- ConvertersCollection.cs
- XmlIncludeAttribute.cs
- MediaElement.cs
- DomainConstraint.cs
- XmlSchemaType.cs
- MembershipSection.cs
- EncryptedPackageFilter.cs
- RectangleHotSpot.cs
- Zone.cs
- StringHandle.cs
- CommentAction.cs
- TextElementEnumerator.cs
- SqlError.cs
- OletxVolatileEnlistment.cs
- TextParagraphView.cs
- PermissionListSet.cs
- TextEditorTyping.cs
- PEFileEvidenceFactory.cs
- _UncName.cs
- GridViewItemAutomationPeer.cs
- DesigntimeLicenseContextSerializer.cs
- TemplateBindingExpressionConverter.cs
- DecimalAnimationBase.cs
- SqlAggregateChecker.cs
- Int16KeyFrameCollection.cs
- Size.cs
- SystemResourceKey.cs
- DataGridColumnEventArgs.cs
- Enum.cs
- HtmlSelect.cs
- NamespaceExpr.cs
- PropertiesTab.cs
- GeneralTransform.cs
- Rules.cs
- TableRow.cs
- ControlIdConverter.cs
- Crc32Helper.cs
- ValidationResult.cs
- XmlExceptionHelper.cs
- DeobfuscatingStream.cs
- SortQuery.cs
- SqlBulkCopy.cs
- EncodingConverter.cs
- GACMembershipCondition.cs
- InvokePatternIdentifiers.cs
- UpdateProgress.cs
- DataGridTable.cs
- VBCodeProvider.cs
- SqlDataSourceFilteringEventArgs.cs
- PropertyCondition.cs
- HttpResponseBase.cs
- DefaultBindingPropertyAttribute.cs
- RawStylusActions.cs
- WebBrowserBase.cs
- ResourcePermissionBase.cs
- ListViewEditEventArgs.cs
- ConfigurationSection.cs
- AppSettingsExpressionBuilder.cs