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
- Variant.cs
- WebBrowserNavigatingEventHandler.cs
- PrintDialog.cs
- TrackingAnnotationCollection.cs
- WindowsFont.cs
- ColumnCollection.cs
- KnownBoxes.cs
- DetailsViewUpdatedEventArgs.cs
- PriorityBindingExpression.cs
- ChannelListenerBase.cs
- EntityReference.cs
- ClientSideProviderDescription.cs
- UnsafeNativeMethods.cs
- MouseEventArgs.cs
- CodeGroup.cs
- GrabHandleGlyph.cs
- COM2PictureConverter.cs
- OrderedDictionaryStateHelper.cs
- Color.cs
- ContentDisposition.cs
- WebPartVerbsEventArgs.cs
- CompoundFileReference.cs
- SymbolPair.cs
- StorageAssociationSetMapping.cs
- AuthenticationModeHelper.cs
- XmlBinaryReader.cs
- DateTimeConverter.cs
- Image.cs
- ReadOnlyDataSource.cs
- Rotation3D.cs
- Parallel.cs
- mansign.cs
- StackSpiller.Generated.cs
- SamlDelegatingWriter.cs
- AmbientLight.cs
- DataServiceHost.cs
- TableCellAutomationPeer.cs
- WorkflowShape.cs
- Certificate.cs
- StrokeNodeOperations.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- CodeMemberProperty.cs
- SolidBrush.cs
- ConfigurationElementProperty.cs
- SubclassTypeValidatorAttribute.cs
- UnsafeNativeMethods.cs
- AsyncOperationContext.cs
- ComAdminWrapper.cs
- TextParentUndoUnit.cs
- DataGridViewRowsRemovedEventArgs.cs
- DataSourceCache.cs
- BrowserTree.cs
- ProxyWebPartManager.cs
- DefaultMemberAttribute.cs
- StackSpiller.Bindings.cs
- WorkflowMarkupSerializationException.cs
- SettingsAttributes.cs
- SQLInt16Storage.cs
- ExpandCollapseIsCheckedConverter.cs
- CombinedGeometry.cs
- XmlDataSource.cs
- DSASignatureFormatter.cs
- WebPartConnection.cs
- GridItemPattern.cs
- _ShellExpression.cs
- SymDocumentType.cs
- ComplexLine.cs
- tooltip.cs
- DataSourceCache.cs
- PerformanceCounterManager.cs
- AccessControlList.cs
- GradientStopCollection.cs
- BaseServiceProvider.cs
- VoiceSynthesis.cs
- WebPartDisplayMode.cs
- RadioButtonRenderer.cs
- SqlMethodCallConverter.cs
- ReadOnlyDictionary.cs
- HttpBindingExtension.cs
- BuildProviderAppliesToAttribute.cs
- FrameworkContextData.cs
- RenderData.cs
- ArrangedElement.cs
- Region.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ToolStripItemRenderEventArgs.cs
- GlobalizationSection.cs
- PrincipalPermissionMode.cs
- WindowsBrush.cs
- Condition.cs
- Stack.cs
- SystemMulticastIPAddressInformation.cs
- PerspectiveCamera.cs
- ListViewHitTestInfo.cs
- VirtualPathProvider.cs
- GotoExpression.cs
- HttpContext.cs
- FormView.cs
- DnsPermission.cs
- Item.cs