Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / ValueCollectionParameterReader.cs / 1305376 / ValueCollectionParameterReader.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.IO; using System; using System.Xml.Serialization; using System.Reflection; using System.Collections; using System.Collections.Specialized; using System.Web.Services; using System.Text; using System.Security.Permissions; ////// /// public abstract class ValueCollectionParameterReader : MimeParameterReader { ParameterInfo[] paramInfos; ///[To be supplied.] ////// /// public override void Initialize(object o) { paramInfos = (ParameterInfo[])o; } ///[To be supplied.] ////// /// public override object GetInitializer(LogicalMethodInfo methodInfo) { if (!IsSupported(methodInfo)) return null; return methodInfo.InParameters; } ///[To be supplied.] ////// /// protected object[] Read(NameValueCollection collection) { object[] parameters = new object[paramInfos.Length]; for (int i = 0; i < paramInfos.Length; i++) { ParameterInfo paramInfo = paramInfos[i]; if (paramInfo.ParameterType.IsArray) { string[] arrayValues = collection.GetValues(paramInfo.Name); Type arrayType = paramInfo.ParameterType.GetElementType(); Array array = Array.CreateInstance(arrayType, arrayValues.Length); for (int j = 0; j < arrayValues.Length; j++) { string value = arrayValues[j]; array.SetValue(ScalarFormatter.FromString(value, arrayType), j); } parameters[i] = array; } else { string value = collection[paramInfo.Name]; if (value == null) throw new InvalidOperationException(Res.GetString(Res.WebMissingParameter, paramInfo.Name)); parameters[i] = ScalarFormatter.FromString(value, paramInfo.ParameterType); } } return parameters; } ///[To be supplied.] ////// /// static public bool IsSupported(LogicalMethodInfo methodInfo) { if (methodInfo.OutParameters.Length > 0) return false; ParameterInfo[] paramInfos = methodInfo.InParameters; for (int i = 0; i < paramInfos.Length; i++) if (!IsSupported(paramInfos[i])) return false; return true; } ///[To be supplied.] ////// /// static public bool IsSupported(ParameterInfo paramInfo) { Type type = paramInfo.ParameterType; if (type.IsArray) type = type.GetElementType(); return ScalarFormatter.IsTypeSupported(type); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XPathNodeIterator.cs
- BindingExpressionUncommonField.cs
- PathSegment.cs
- ICspAsymmetricAlgorithm.cs
- WebConfigurationHost.cs
- SamlAssertionKeyIdentifierClause.cs
- FileUtil.cs
- LoggedException.cs
- SettingsPropertyValue.cs
- RawStylusInputCustomData.cs
- TimeSpanOrInfiniteConverter.cs
- SQLByteStorage.cs
- MetadataArtifactLoaderFile.cs
- DesignTimeXamlWriter.cs
- UrlPath.cs
- OutputScopeManager.cs
- HtmlInputReset.cs
- EntityReference.cs
- BCryptHashAlgorithm.cs
- WebPartHelpVerb.cs
- UpdateManifestForBrowserApplication.cs
- Switch.cs
- Rotation3DAnimationUsingKeyFrames.cs
- Validator.cs
- KoreanLunisolarCalendar.cs
- OSFeature.cs
- AesCryptoServiceProvider.cs
- ConfigurationStrings.cs
- GlyphRunDrawing.cs
- Binding.cs
- ColumnCollection.cs
- ScriptResourceHandler.cs
- FixedSOMPage.cs
- ScrollableControlDesigner.cs
- DebugViewWriter.cs
- CuspData.cs
- RegionIterator.cs
- IRCollection.cs
- WindowsToolbar.cs
- SecurityTokenProviderContainer.cs
- DictionaryMarkupSerializer.cs
- DrawItemEvent.cs
- TextServicesProperty.cs
- NamespaceMapping.cs
- Sentence.cs
- ArgumentOutOfRangeException.cs
- AnnotationResourceChangedEventArgs.cs
- AssemblySettingAttributes.cs
- MetadataArtifactLoader.cs
- UserUseLicenseDictionaryLoader.cs
- Graphics.cs
- PaginationProgressEventArgs.cs
- VisualProxy.cs
- SynchronizationLockException.cs
- DomainUpDown.cs
- BufferModeSettings.cs
- ResumeStoryboard.cs
- LinqDataSourceValidationException.cs
- GenerateDerivedKeyRequest.cs
- SplineQuaternionKeyFrame.cs
- sqlnorm.cs
- JapaneseLunisolarCalendar.cs
- XamlTypeMapperSchemaContext.cs
- GrammarBuilderPhrase.cs
- BitmapCodecInfo.cs
- IdleTimeoutMonitor.cs
- GeneralTransformGroup.cs
- HtmlShimManager.cs
- ScriptingWebServicesSectionGroup.cs
- PackagingUtilities.cs
- CharacterBufferReference.cs
- DrawingCollection.cs
- ListBox.cs
- Boolean.cs
- DBDataPermissionAttribute.cs
- PrinterSettings.cs
- TransformerInfo.cs
- MaskDesignerDialog.cs
- EndpointDiscoveryBehavior.cs
- EdmItemCollection.cs
- SerialErrors.cs
- SolidBrush.cs
- FixedSOMTableRow.cs
- ImageAnimator.cs
- WebBrowserContainer.cs
- UpdatePanelControlTrigger.cs
- SqlBulkCopyColumnMappingCollection.cs
- CachedPathData.cs
- PageCache.cs
- WebPartAddingEventArgs.cs
- DesignerSerializerAttribute.cs
- TerminatorSinks.cs
- FieldToken.cs
- VisualCollection.cs
- CodeEntryPointMethod.cs
- CommandHelpers.cs
- FontInfo.cs
- TreeView.cs
- AcceleratedTokenProviderState.cs
- ToolStripDropDown.cs