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
- DataTableCollection.cs
- Domain.cs
- EndSelectCardRequest.cs
- BulletedListEventArgs.cs
- ManipulationVelocities.cs
- WebPartActionVerb.cs
- CompilerState.cs
- SupportsEventValidationAttribute.cs
- ObjectKeyFrameCollection.cs
- ImageMapEventArgs.cs
- EventWaitHandle.cs
- StrongNamePublicKeyBlob.cs
- InputDevice.cs
- CapabilitiesPattern.cs
- PageContent.cs
- CorrelationManager.cs
- ProviderBase.cs
- Buffer.cs
- FileSystemWatcher.cs
- StylusPointPropertyInfo.cs
- MultipartContentParser.cs
- DataGrid.cs
- OneOfConst.cs
- SqlMethodTransformer.cs
- EntityConnection.cs
- UIElementParaClient.cs
- TokenFactoryCredential.cs
- AsyncSerializedWorker.cs
- Environment.cs
- LockCookie.cs
- LockedHandleGlyph.cs
- IntSecurity.cs
- RenamedEventArgs.cs
- baseaxisquery.cs
- InputScope.cs
- DtcInterfaces.cs
- UrlAuthFailedErrorFormatter.cs
- UnsafeCollabNativeMethods.cs
- SocketElement.cs
- GridItem.cs
- EUCJPEncoding.cs
- TemplateLookupAction.cs
- ErrorLog.cs
- ContentTextAutomationPeer.cs
- Point3DKeyFrameCollection.cs
- GridPattern.cs
- DBPropSet.cs
- OdbcDataReader.cs
- BmpBitmapEncoder.cs
- HttpApplicationFactory.cs
- WebPartDisplayMode.cs
- XmlDataSourceNodeDescriptor.cs
- ComponentResourceKeyConverter.cs
- ValueType.cs
- PageAsyncTaskManager.cs
- FileUpload.cs
- DelegatingHeader.cs
- ServiceDescriptionSerializer.cs
- PermissionAttributes.cs
- HotCommands.cs
- ClientScriptManager.cs
- FaultCode.cs
- TimeSpanStorage.cs
- DesignerAdapterUtil.cs
- JournalNavigationScope.cs
- SmiTypedGetterSetter.cs
- WebBrowserNavigatingEventHandler.cs
- RelationshipEndCollection.cs
- Wildcard.cs
- AttributeCollection.cs
- RadioButton.cs
- RegisteredExpandoAttribute.cs
- UpdatePanelTrigger.cs
- KnownColorTable.cs
- OracleCommandBuilder.cs
- TextRange.cs
- Size.cs
- MutexSecurity.cs
- SelectionGlyph.cs
- ScriptServiceAttribute.cs
- MetadataArtifactLoaderComposite.cs
- SystemIPv6InterfaceProperties.cs
- _LoggingObject.cs
- GlyphRunDrawing.cs
- XmlQueryContext.cs
- ClipboardProcessor.cs
- TimeStampChecker.cs
- NumberSubstitution.cs
- EncoderNLS.cs
- CallTemplateAction.cs
- SqlDataAdapter.cs
- TreeNodeEventArgs.cs
- OpCodes.cs
- PathSegmentCollection.cs
- UpdateProgress.cs
- SelectorItemAutomationPeer.cs
- SafeNativeMethodsCLR.cs
- AutomationProperties.cs
- PageEventArgs.cs
- GuidConverter.cs