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
- CompiledQuery.cs
- WmlLiteralTextAdapter.cs
- ConstrainedGroup.cs
- TemplateColumn.cs
- StandardBindingImporter.cs
- TextProperties.cs
- PartitionResolver.cs
- ResolvedKeyFrameEntry.cs
- ContravarianceAdapter.cs
- PrePostDescendentsWalker.cs
- GuidTagList.cs
- DataServiceQuery.cs
- FormatterServices.cs
- ConfigXmlReader.cs
- ImageList.cs
- X509Chain.cs
- EasingKeyFrames.cs
- EntityClassGenerator.cs
- TreePrinter.cs
- CodeDomLocalizationProvider.cs
- PropertyNames.cs
- ParseHttpDate.cs
- HandleExceptionArgs.cs
- SqlClientMetaDataCollectionNames.cs
- WebPartConnectionCollection.cs
- ProxyHwnd.cs
- VisualBasicExpressionConverter.cs
- COM2ColorConverter.cs
- CharacterString.cs
- SimpleWorkerRequest.cs
- SdlChannelSink.cs
- SiteMapNodeCollection.cs
- MouseEvent.cs
- CompoundFileReference.cs
- StringConcat.cs
- NullableDecimalMinMaxAggregationOperator.cs
- _AuthenticationState.cs
- TreeWalker.cs
- PngBitmapEncoder.cs
- MemberListBinding.cs
- DataServiceRequest.cs
- SafeNativeMethodsOther.cs
- ToolStripDropDownButton.cs
- Calendar.cs
- ElapsedEventArgs.cs
- ScriptManagerProxy.cs
- HuffModule.cs
- ProgressChangedEventArgs.cs
- SqlCachedBuffer.cs
- XmlWriter.cs
- MasterPageParser.cs
- BamlRecordHelper.cs
- SmtpException.cs
- versioninfo.cs
- Propagator.Evaluator.cs
- SchemaTypeEmitter.cs
- PerformanceCounterManager.cs
- ProxyHelper.cs
- XmlQueryCardinality.cs
- WebZone.cs
- XmlQualifiedName.cs
- DeleteBookmarkScope.cs
- GridViewRowEventArgs.cs
- DataTemplateSelector.cs
- XmlCharCheckingReader.cs
- DelegatedStream.cs
- FixUpCollection.cs
- Serializer.cs
- TypeConverterHelper.cs
- HttpHeaderCollection.cs
- UrlSyndicationContent.cs
- HtmlMeta.cs
- Context.cs
- HttpRequestMessageProperty.cs
- XPathDocumentIterator.cs
- TailPinnedEventArgs.cs
- _Events.cs
- ConfigXmlCDataSection.cs
- GlyphRunDrawing.cs
- TreeNodeStyle.cs
- PropagatorResult.cs
- prompt.cs
- DesignerActionListCollection.cs
- IPipelineRuntime.cs
- ConfigurationStrings.cs
- StyleCollection.cs
- ExpressionContext.cs
- WaveHeader.cs
- PnrpPeerResolverBindingElement.cs
- LinkLabel.cs
- ListMarkerSourceInfo.cs
- DataListItemCollection.cs
- ViewStateChangedEventArgs.cs
- ReadOnlyDictionary.cs
- TypeUtils.cs
- ResolveNameEventArgs.cs
- GC.cs
- ParameterToken.cs
- TdsParserStaticMethods.cs
- IdentityValidationException.cs