Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Util / ProviderUtil.cs / 1 / ProviderUtil.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Sec * * Copyright (c) 1998-1999, Microsoft Corporation * */ namespace System.Web.Util { using System.Collections.Specialized; using System.Web.Mail; using System.Configuration; using System.Globalization; internal static class ProviderUtil { internal const int Infinite = Int32.MaxValue; internal static void GetAndRemoveStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { val = config.Get(attrib); config.Remove(attrib); } internal static void GetAndRemovePositiveAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { GetPositiveAttribute(config, attrib, providerName, ref val); config.Remove(attrib); } internal static void GetPositiveAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { string s = config.Get(attrib); int t; if (s == null) { return; } try { t = Convert.ToInt32(s, CultureInfo.InvariantCulture); } catch (Exception e){ if (e is ArgumentException || e is FormatException || e is OverflowException) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName)); } else { throw; } } if (t < 0) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName)); } val = t; } internal static void GetAndRemovePositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { GetPositiveOrInfiniteAttribute(config, attrib, providerName, ref val); config.Remove(attrib); } internal static void GetPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { string s = config.Get(attrib); int t; if (s == null) { return; } if (s == "Infinite") { t = ProviderUtil.Infinite; } else { try { t = Convert.ToInt32(s, CultureInfo.InvariantCulture); } catch (Exception e){ if (e is ArgumentException || e is FormatException || e is OverflowException) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName)); } else { throw; } } if (t < 0) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_positive_attributes, attrib, providerName)); } } val = t; } internal static void GetAndRemoveNonZeroPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { GetNonZeroPositiveOrInfiniteAttribute(config, attrib, providerName, ref val); config.Remove(attrib); } internal static void GetNonZeroPositiveOrInfiniteAttribute(NameValueCollection config, string attrib, string providerName, ref int val) { string s = config.Get(attrib); int t; if (s == null) { return; } if (s == "Infinite") { t = ProviderUtil.Infinite; } else { try { t = Convert.ToInt32(s, CultureInfo.InvariantCulture); } catch (Exception e){ if (e is ArgumentException || e is FormatException || e is OverflowException) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_non_zero_positive_attributes, attrib, providerName)); } else { throw; } } if (t <= 0) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_provider_non_zero_positive_attributes, attrib, providerName)); } } val = t; } internal static void GetAndRemoveBooleanAttribute(NameValueCollection config, string attrib, string providerName, ref bool val) { GetBooleanAttribute(config, attrib, providerName, ref val); config.Remove(attrib); } internal static void GetBooleanAttribute(NameValueCollection config, string attrib, string providerName, ref bool val) { string s = config.Get(attrib); if (s == null) { return; } if (s == "true") { val = true; } else if (s == "false") { val = false; } else { throw new ConfigurationErrorsException(SR.GetString(SR.Invalid_provider_attribute, attrib, providerName, s)); } } internal static void GetAndRemoveRequiredNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { GetRequiredNonEmptyStringAttribute(config, attrib, providerName, ref val); config.Remove(attrib); } internal static void GetRequiredNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { GetNonEmptyStringAttributeInternal(config, attrib, providerName, ref val, true); } #if UNUSED_CODE internal static void GetAndRemoveNonEmptyStringAttribute(NameValueCollection config, string attrib, string providerName, ref string val) { GetNonEmptyStringAttributeInternal(config, attrib, providerName, ref val, false); config.Remove(attrib); } #endif private static void GetNonEmptyStringAttributeInternal(NameValueCollection config, string attrib, string providerName, ref string val, bool required) { string s = config.Get(attrib); // If it's (null and required) -OR- (empty string) we throw if ((s == null && required) || (s.Length == 0)) { throw new ConfigurationErrorsException( SR.GetString(SR.Provider_missing_attribute, attrib, providerName)); } val = s; } internal static void CheckUnrecognizedAttributes(NameValueCollection config, string providerName) { if (config.Count > 0) { string attribUnrecognized = config.GetKey(0); if (!String.IsNullOrEmpty(attribUnrecognized)) throw new ConfigurationErrorsException( SR.GetString(SR.Unexpected_provider_attribute, attribUnrecognized, providerName)); } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Pkcs7Recipient.cs
- FreeFormDragDropManager.cs
- PeerNearMe.cs
- SimpleType.cs
- WeakReferenceEnumerator.cs
- InvalidOleVariantTypeException.cs
- CollectionViewProxy.cs
- PlatformCulture.cs
- MetadataSource.cs
- Itemizer.cs
- CryptoSession.cs
- MarkupCompiler.cs
- PrintDocument.cs
- GlyphInfoList.cs
- GenerateHelper.cs
- GatewayDefinition.cs
- KeySplineConverter.cs
- XmlUtilWriter.cs
- Configuration.cs
- ZoomPercentageConverter.cs
- CodeTryCatchFinallyStatement.cs
- SafeReversePInvokeHandle.cs
- IsolatedStoragePermission.cs
- WeakReferenceEnumerator.cs
- DbBuffer.cs
- ListBindableAttribute.cs
- StringFreezingAttribute.cs
- OdbcStatementHandle.cs
- HtmlWindowCollection.cs
- IPHostEntry.cs
- MobileCapabilities.cs
- MdiWindowListItemConverter.cs
- ResourceReferenceKeyNotFoundException.cs
- HtmlElementCollection.cs
- DoubleLinkList.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- OdbcParameterCollection.cs
- MethodBuilderInstantiation.cs
- WindowsBrush.cs
- DefaultPrintController.cs
- DataGridViewCellStyleChangedEventArgs.cs
- DataGridBoundColumn.cs
- HttpHeaderCollection.cs
- MsmqBindingMonitor.cs
- TreeNodeStyleCollection.cs
- ObjectDisposedException.cs
- ToggleButtonAutomationPeer.cs
- JsonClassDataContract.cs
- ColorConvertedBitmap.cs
- FormViewUpdateEventArgs.cs
- RepeatButton.cs
- UICuesEvent.cs
- KoreanLunisolarCalendar.cs
- control.ime.cs
- KeyedQueue.cs
- DataGridAutoFormatDialog.cs
- TextParagraphCache.cs
- AdapterUtil.cs
- RuleRefElement.cs
- ValidationHelper.cs
- OraclePermissionAttribute.cs
- Single.cs
- FragmentQuery.cs
- KeyboardDevice.cs
- BuildProviderCollection.cs
- GPRECTF.cs
- PageClientProxyGenerator.cs
- ZeroOpNode.cs
- ContentElement.cs
- Condition.cs
- SingleKeyFrameCollection.cs
- DataSourceViewSchemaConverter.cs
- RuntimeWrappedException.cs
- WebBrowserContainer.cs
- ScriptingSectionGroup.cs
- MLangCodePageEncoding.cs
- CommandBindingCollection.cs
- TemplateKey.cs
- DynamicILGenerator.cs
- MsmqIntegrationBindingCollectionElement.cs
- SqlNamer.cs
- SpeechDetectedEventArgs.cs
- TreeNodeMouseHoverEvent.cs
- UshortList2.cs
- ThemeableAttribute.cs
- WindowsUpDown.cs
- Run.cs
- RectAnimationBase.cs
- RectKeyFrameCollection.cs
- _HeaderInfoTable.cs
- CanonicalFontFamilyReference.cs
- TreeNodeStyle.cs
- ScriptControlManager.cs
- ToolCreatedEventArgs.cs
- XmlDocumentSurrogate.cs
- CroppedBitmap.cs
- EdmError.cs
- ModuleBuilderData.cs
- AmbientValueAttribute.cs
- MimeParameterWriter.cs