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
- XmlObjectSerializerReadContext.cs
- TreeViewItemAutomationPeer.cs
- SqlTypesSchemaImporter.cs
- HexParser.cs
- SiteMapHierarchicalDataSourceView.cs
- NativeMethods.cs
- Expressions.cs
- CompiledAction.cs
- InputMethod.cs
- RenderOptions.cs
- ZoneIdentityPermission.cs
- CompoundFileStreamReference.cs
- Regex.cs
- XPathItem.cs
- ObservableCollection.cs
- SmtpTransport.cs
- HtmlInputPassword.cs
- dbdatarecord.cs
- X509Certificate2Collection.cs
- AnnotationService.cs
- NativeMethodsOther.cs
- CompensationParticipant.cs
- FunctionDescription.cs
- SerialStream.cs
- AttachedAnnotationChangedEventArgs.cs
- RoleManagerModule.cs
- EmbeddedObject.cs
- SHA1.cs
- PersonalizationStateQuery.cs
- NotFiniteNumberException.cs
- _Semaphore.cs
- XXXInfos.cs
- XmlDocumentFragment.cs
- ExtensionQuery.cs
- BaseValidatorDesigner.cs
- LogEntryDeserializer.cs
- ExpressionNormalizer.cs
- ProviderMetadataCachedInformation.cs
- ArrayExtension.cs
- SetMemberBinder.cs
- ScrollProviderWrapper.cs
- EditorPartChrome.cs
- ServiceMetadataExtension.cs
- GradientBrush.cs
- PackWebResponse.cs
- Binding.cs
- StrokeDescriptor.cs
- TreePrinter.cs
- EditableTreeList.cs
- NetTcpSecurity.cs
- Oid.cs
- HtmlInputControl.cs
- ProtectedProviderSettings.cs
- SizeFConverter.cs
- ActiveDocumentEvent.cs
- CalendarDay.cs
- ResourcePermissionBaseEntry.cs
- MobileSysDescriptionAttribute.cs
- LogConverter.cs
- XmlSchemaFacet.cs
- Propagator.Evaluator.cs
- VectorAnimationBase.cs
- SystemException.cs
- GeneralTransformCollection.cs
- Base64Stream.cs
- TagMapInfo.cs
- CacheModeValueSerializer.cs
- RequestCacheEntry.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- ObjectCache.cs
- BitmapFrameDecode.cs
- DataGridRowDetailsEventArgs.cs
- ProbeMatchesCD1.cs
- IdentityManager.cs
- wgx_exports.cs
- ValidatorCompatibilityHelper.cs
- ListBoxAutomationPeer.cs
- XmlTextEncoder.cs
- EditorBrowsableAttribute.cs
- HostingEnvironment.cs
- NegationPusher.cs
- MemberHolder.cs
- ReferenceConverter.cs
- LinkLabel.cs
- SessionSwitchEventArgs.cs
- SingleSelectRootGridEntry.cs
- RightsManagementInformation.cs
- IgnoreFileBuildProvider.cs
- StatusBarItemAutomationPeer.cs
- ProviderCollection.cs
- Identifier.cs
- SettingsPropertyCollection.cs
- XmlSchemaSearchPattern.cs
- EmissiveMaterial.cs
- httpapplicationstate.cs
- CompilationLock.cs
- ConsoleKeyInfo.cs
- typedescriptorpermissionattribute.cs
- XmlNamespaceMapping.cs
- TcpTransportElement.cs