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
- MemoryMappedFile.cs
- SoapTypeAttribute.cs
- EncoderBestFitFallback.cs
- DoubleLinkListEnumerator.cs
- Border.cs
- EmbeddedMailObjectsCollection.cs
- _ListenerAsyncResult.cs
- Style.cs
- ButtonBaseAutomationPeer.cs
- MulticastDelegate.cs
- PageVisual.cs
- TagNameToTypeMapper.cs
- ListItemConverter.cs
- XmlLinkedNode.cs
- CaseStatement.cs
- PartitionerQueryOperator.cs
- TypeUnloadedException.cs
- EventLog.cs
- ElementHostAutomationPeer.cs
- Pick.cs
- MetaDataInfo.cs
- ExpressionBindings.cs
- FieldNameLookup.cs
- WindowsSecurityToken.cs
- SafeViewOfFileHandle.cs
- Menu.cs
- ArrayList.cs
- RegionData.cs
- SingleConverter.cs
- ControlLocalizer.cs
- DesignerHierarchicalDataSourceView.cs
- Validator.cs
- WinFormsUtils.cs
- Helpers.cs
- SessionSwitchEventArgs.cs
- GeneralTransformGroup.cs
- ProjectionPlan.cs
- RouteItem.cs
- StylusDevice.cs
- Composition.cs
- CachedTypeface.cs
- MetabaseServerConfig.cs
- SingleStorage.cs
- LocalBuilder.cs
- _ProxyRegBlob.cs
- InkCanvasInnerCanvas.cs
- ValidationResult.cs
- LineVisual.cs
- DrawingVisualDrawingContext.cs
- DesignerCategoryAttribute.cs
- SplitterPanel.cs
- SymmetricKeyWrap.cs
- SchemaMerger.cs
- ApplicationId.cs
- VisualStyleInformation.cs
- Object.cs
- XmlSerializableWriter.cs
- ManagedFilter.cs
- RoleService.cs
- HMACSHA256.cs
- HtmlTable.cs
- XmlnsPrefixAttribute.cs
- ModifierKeysConverter.cs
- IPEndPointCollection.cs
- DataSvcMapFile.cs
- KeyboardNavigation.cs
- AttachedPropertiesService.cs
- ConfigurationErrorsException.cs
- FormsAuthenticationModule.cs
- ElementHost.cs
- Function.cs
- CompiledQuery.cs
- ConfigurationValidatorAttribute.cs
- ImpersonationContext.cs
- MSAAWinEventWrap.cs
- PopupEventArgs.cs
- DirectoryNotFoundException.cs
- Publisher.cs
- HuffmanTree.cs
- ExpressionBuilder.cs
- IgnoreFileBuildProvider.cs
- ColorConvertedBitmap.cs
- SizeValueSerializer.cs
- OutputCacheModule.cs
- InputEventArgs.cs
- AlgoModule.cs
- ControlValuePropertyAttribute.cs
- LogWriteRestartAreaState.cs
- BindingExpression.cs
- WebEvents.cs
- DocumentSequence.cs
- MembershipSection.cs
- WebZone.cs
- DetailsViewDesigner.cs
- MultiplexingDispatchMessageFormatter.cs
- CqlLexer.cs
- Focus.cs
- BamlLocalizableResourceKey.cs
- DataGridViewDataConnection.cs
- WebZone.cs