Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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; } } } // 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
- PersianCalendar.cs
- IntSecurity.cs
- XmlUtilWriter.cs
- DataTemplateSelector.cs
- WebServiceHost.cs
- FrameworkElementFactory.cs
- ValueQuery.cs
- Compiler.cs
- columnmapfactory.cs
- GACMembershipCondition.cs
- QilScopedVisitor.cs
- GroupItemAutomationPeer.cs
- SequentialUshortCollection.cs
- RelationHandler.cs
- XmlUrlResolver.cs
- CrossContextChannel.cs
- PartialCachingAttribute.cs
- ISAPIRuntime.cs
- WSDualHttpSecurityElement.cs
- Schedule.cs
- httpstaticobjectscollection.cs
- dbdatarecord.cs
- XmlSchemaNotation.cs
- RightsManagementInformation.cs
- Expression.cs
- XmlILStorageConverter.cs
- httpapplicationstate.cs
- DllNotFoundException.cs
- FileLevelControlBuilderAttribute.cs
- DataSourceXmlAttributeAttribute.cs
- WsatConfiguration.cs
- ActivityExecutorSurrogate.cs
- EndpointAddressMessageFilterTable.cs
- SqlLiftWhereClauses.cs
- FontWeights.cs
- OleDbReferenceCollection.cs
- GlyphTypeface.cs
- MailDefinition.cs
- PagedDataSource.cs
- CodeLabeledStatement.cs
- NavigationProgressEventArgs.cs
- DragDrop.cs
- TemplatedMailWebEventProvider.cs
- XmlElementAttributes.cs
- UserNamePasswordServiceCredential.cs
- DeviceSpecificChoiceCollection.cs
- ErrorsHelper.cs
- TypeConverterValueSerializer.cs
- FamilyMapCollection.cs
- PackageFilter.cs
- CompilationUtil.cs
- __Error.cs
- QuaternionKeyFrameCollection.cs
- SplitContainer.cs
- _SSPISessionCache.cs
- HttpServerVarsCollection.cs
- VirtualPath.cs
- DocumentPageHost.cs
- _OSSOCK.cs
- Events.cs
- AttributeCollection.cs
- TextTreeExtractElementUndoUnit.cs
- BindableTemplateBuilder.cs
- HtmlSelect.cs
- Point3DCollectionConverter.cs
- IndependentlyAnimatedPropertyMetadata.cs
- DateTimeConverter2.cs
- TogglePattern.cs
- SystemWebCachingSectionGroup.cs
- TrackingMemoryStreamFactory.cs
- Range.cs
- DuplexChannel.cs
- Link.cs
- ControlFilterExpression.cs
- RadioButtonAutomationPeer.cs
- OutputCacheSettingsSection.cs
- BrowserTree.cs
- WindowsToolbar.cs
- DataBindingCollection.cs
- TypeExtensionSerializer.cs
- BitmapEffectInput.cs
- Column.cs
- SessionKeyExpiredException.cs
- StorageAssociationTypeMapping.cs
- WebBrowser.cs
- LexicalChunk.cs
- CodeTypeReference.cs
- ConfigurationStrings.cs
- DataGridCell.cs
- TypeContext.cs
- PersistenceTypeAttribute.cs
- AuthenticateEventArgs.cs
- XmlSchemaProviderAttribute.cs
- GlobalizationAssembly.cs
- CalendarDay.cs
- ListDictionaryInternal.cs
- XmlText.cs
- DispatcherProcessingDisabled.cs
- EncryptedXml.cs
- DrawItemEvent.cs