Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- RightsManagementEncryptionTransform.cs
- CompressedStack.cs
- WindowsComboBox.cs
- DelegateSerializationHolder.cs
- HostProtectionPermission.cs
- DbExpressionVisitor.cs
- MyContact.cs
- ExtractedStateEntry.cs
- XmlNodeChangedEventArgs.cs
- SemanticKeyElement.cs
- COM2ComponentEditor.cs
- CreateUserWizardStep.cs
- MouseGesture.cs
- XamlPointCollectionSerializer.cs
- IEnumerable.cs
- SelectionManager.cs
- Cursor.cs
- BackEase.cs
- Vector3DValueSerializer.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- PageEventArgs.cs
- NamedPipeProcessProtocolHandler.cs
- WindowsListBox.cs
- SortedDictionary.cs
- Translator.cs
- TableLayoutStyleCollection.cs
- MatrixCamera.cs
- XDRSchema.cs
- PeerNameResolver.cs
- ListSortDescription.cs
- EpmSourceTree.cs
- DbTransaction.cs
- XmlQueryOutput.cs
- Int64Storage.cs
- OdbcException.cs
- GridPatternIdentifiers.cs
- AlternateViewCollection.cs
- UndoUnit.cs
- RoutedCommand.cs
- XmlWellformedWriter.cs
- ClientScriptManagerWrapper.cs
- SessionStateItemCollection.cs
- EastAsianLunisolarCalendar.cs
- ConnectionsZone.cs
- HashSetEqualityComparer.cs
- BoundsDrawingContextWalker.cs
- _NegoStream.cs
- Section.cs
- SubMenuStyleCollection.cs
- ClientBuildManager.cs
- ProcessInfo.cs
- ScrollChrome.cs
- RawTextInputReport.cs
- ProtocolsSection.cs
- X509Extension.cs
- InternalBufferOverflowException.cs
- SubMenuStyle.cs
- ColorConvertedBitmapExtension.cs
- OletxVolatileEnlistment.cs
- SettingsBase.cs
- SpellerStatusTable.cs
- PropertyKey.cs
- WebServiceClientProxyGenerator.cs
- SHA512Cng.cs
- ColorPalette.cs
- OrderByBuilder.cs
- ExpressionLexer.cs
- Formatter.cs
- DataGridViewColumnCollection.cs
- EventTrigger.cs
- WebPartConnectionsDisconnectVerb.cs
- CacheDict.cs
- CreateUserErrorEventArgs.cs
- PopupEventArgs.cs
- MLangCodePageEncoding.cs
- ReliabilityContractAttribute.cs
- StateRuntime.cs
- TimersDescriptionAttribute.cs
- ExpressionPrefixAttribute.cs
- XmlSchemaAttribute.cs
- ListenerUnsafeNativeMethods.cs
- DetailsViewInsertEventArgs.cs
- TraceRecord.cs
- ElementInit.cs
- BitmapDecoder.cs
- BindingMAnagerBase.cs
- SqlDataSourceConfigureSortForm.cs
- Content.cs
- MessagePropertyVariants.cs
- AutoCompleteStringCollection.cs
- Number.cs
- ScaleTransform.cs
- NullEntityWrapper.cs
- TextDecorationCollection.cs
- SharedConnectionWorkflowTransactionService.cs
- GuidelineCollection.cs
- ADMembershipUser.cs
- DataControlFieldHeaderCell.cs
- GroupQuery.cs
- ErrorTableItemStyle.cs