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
- SecurityUtils.cs
- ACE.cs
- IResourceProvider.cs
- BlurEffect.cs
- RequiredAttributeAttribute.cs
- EventLogger.cs
- EditorPartCollection.cs
- RemotingConfiguration.cs
- OSEnvironmentHelper.cs
- ArgumentValueSerializer.cs
- CustomErrorsSectionWrapper.cs
- CssTextWriter.cs
- TextPenaltyModule.cs
- TextHidden.cs
- PaperSize.cs
- _WinHttpWebProxyDataBuilder.cs
- ExpressionEditorAttribute.cs
- PolyQuadraticBezierSegment.cs
- IconHelper.cs
- ExclusiveCanonicalizationTransform.cs
- PeerNearMe.cs
- XpsS0ValidatingLoader.cs
- PerformanceCounterManager.cs
- ContextMenuStripGroupCollection.cs
- CodeMemberMethod.cs
- SchemaCollectionCompiler.cs
- XPathNode.cs
- SQLInt32.cs
- XslCompiledTransform.cs
- GenericTypeParameterConverter.cs
- XmlObjectSerializer.cs
- RectKeyFrameCollection.cs
- SimpleRecyclingCache.cs
- DataTableMapping.cs
- Inline.cs
- DataError.cs
- CipherData.cs
- InvalidCommandTreeException.cs
- XmlEnumAttribute.cs
- HttpCachePolicy.cs
- SqlProfileProvider.cs
- LoginName.cs
- _ProxyChain.cs
- HtmlInputSubmit.cs
- AsyncDataRequest.cs
- PathGradientBrush.cs
- FixedSOMContainer.cs
- LeafCellTreeNode.cs
- Font.cs
- EntityDesignerBuildProvider.cs
- XmlNotation.cs
- RankException.cs
- Package.cs
- RowSpanVector.cs
- MarkupCompilePass1.cs
- SoapIncludeAttribute.cs
- MetadataCollection.cs
- SeekableMessageNavigator.cs
- SqlNotificationEventArgs.cs
- PerfService.cs
- Axis.cs
- ServiceRouteHandler.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- SessionIDManager.cs
- MemoryPressure.cs
- ListMarkerSourceInfo.cs
- FilteredAttributeCollection.cs
- PropertyItem.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ContextMenu.cs
- DockAndAnchorLayout.cs
- XamlStyleSerializer.cs
- EntityExpressionVisitor.cs
- XamlPathDataSerializer.cs
- WorkflowPageSetupDialog.cs
- ZipIOLocalFileBlock.cs
- CodeMethodInvokeExpression.cs
- clipboard.cs
- MimeWriter.cs
- Parameter.cs
- CollaborationHelperFunctions.cs
- Menu.cs
- CaseInsensitiveOrdinalStringComparer.cs
- XmlSchemaType.cs
- WinFormsComponentEditor.cs
- HandlerBase.cs
- MaskedTextProvider.cs
- HttpApplicationFactory.cs
- XmlQueryType.cs
- wmiprovider.cs
- SessionEndingCancelEventArgs.cs
- GridViewRowPresenterBase.cs
- Compilation.cs
- StrongNameIdentityPermission.cs
- RelationshipWrapper.cs
- BitmapData.cs
- ScriptingAuthenticationServiceSection.cs
- ToolStripArrowRenderEventArgs.cs
- AutoGeneratedFieldProperties.cs
- ApplicationSecurityInfo.cs