Code:
/ 4.0 / 4.0 / 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.] ///// 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
- Selector.cs
- AuthenticationManager.cs
- GridItemPatternIdentifiers.cs
- SwitchDesigner.xaml.cs
- TextureBrush.cs
- KeyGestureValueSerializer.cs
- ToolStripSeparator.cs
- Dynamic.cs
- ScriptMethodAttribute.cs
- DesignerCalendarAdapter.cs
- cookiecontainer.cs
- ClrProviderManifest.cs
- SqlReferenceCollection.cs
- SBCSCodePageEncoding.cs
- NextPreviousPagerField.cs
- DependencyProperty.cs
- PagedControl.cs
- BasicExpressionVisitor.cs
- DocumentViewer.cs
- PointConverter.cs
- FrameworkPropertyMetadata.cs
- Scene3D.cs
- MonthCalendar.cs
- APCustomTypeDescriptor.cs
- infer.cs
- InstanceContextManager.cs
- UIPermission.cs
- Filter.cs
- XmlSortKey.cs
- SplitContainer.cs
- MenuScrollingVisibilityConverter.cs
- BamlLocalizableResource.cs
- BindingExpressionUncommonField.cs
- BamlCollectionHolder.cs
- PropertyInformationCollection.cs
- StringExpressionSet.cs
- XmlQuerySequence.cs
- ProgressiveCrcCalculatingStream.cs
- XmlStringTable.cs
- ComponentEvent.cs
- WebSysDefaultValueAttribute.cs
- WebPartManagerInternals.cs
- DBDataPermissionAttribute.cs
- InkCollectionBehavior.cs
- TemplateXamlTreeBuilder.cs
- CodeRemoveEventStatement.cs
- _ShellExpression.cs
- CallContext.cs
- CacheVirtualItemsEvent.cs
- __ComObject.cs
- SHA1.cs
- AggregateNode.cs
- UnsafeNativeMethods.cs
- RootBrowserWindow.cs
- ImageMapEventArgs.cs
- AppendHelper.cs
- ObjectManager.cs
- RuntimeIdentifierPropertyAttribute.cs
- GeneralTransform3DGroup.cs
- SafeRegistryKey.cs
- SQLByteStorage.cs
- DelegatedStream.cs
- DrawingCollection.cs
- updateconfighost.cs
- WebEventCodes.cs
- FileLevelControlBuilderAttribute.cs
- _DomainName.cs
- ResolveMatchesCD1.cs
- DynamicDataManager.cs
- ColorInterpolationModeValidation.cs
- XsdBuilder.cs
- StringCollection.cs
- BuildManagerHost.cs
- HttpListenerTimeoutManager.cs
- StylusCaptureWithinProperty.cs
- XmlElement.cs
- EncoderBestFitFallback.cs
- BufferedStream.cs
- ArgumentException.cs
- RepeatInfo.cs
- RuleEngine.cs
- OletxDependentTransaction.cs
- BaseTreeIterator.cs
- CLSCompliantAttribute.cs
- ListCollectionView.cs
- RectangleHotSpot.cs
- XmlSchemaDatatype.cs
- PermissionSetEnumerator.cs
- InvokeHandlers.cs
- RectangleF.cs
- SeverityFilter.cs
- StringDictionaryCodeDomSerializer.cs
- SimpleRecyclingCache.cs
- ToolStripDropDownMenu.cs
- Configuration.cs
- List.cs
- autovalidator.cs
- MarkupExtensionParser.cs
- LabelEditEvent.cs
- RemotingServices.cs