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
- LeaseManager.cs
- Matrix.cs
- HostProtectionException.cs
- DesignerActionVerbItem.cs
- ClientSettingsProvider.cs
- CompositeActivityMarkupSerializer.cs
- RectValueSerializer.cs
- DynamicObjectAccessor.cs
- IDataContractSurrogate.cs
- StaticDataManager.cs
- DrawingState.cs
- PropertyMetadata.cs
- GeneralTransform3DCollection.cs
- DeobfuscatingStream.cs
- PersistenceContextEnlistment.cs
- InstancePersistenceException.cs
- Int32RectValueSerializer.cs
- EmptyTextWriter.cs
- Pair.cs
- LinqDataView.cs
- EmbeddedMailObject.cs
- MaterialGroup.cs
- SelectionItemProviderWrapper.cs
- DoubleConverter.cs
- SingleKeyFrameCollection.cs
- ExpandedWrapper.cs
- System.Data.OracleClient_BID.cs
- ViewCellSlot.cs
- ComboBoxAutomationPeer.cs
- WebBrowserHelper.cs
- SectionVisual.cs
- ObjectManager.cs
- ParentQuery.cs
- XamlPathDataSerializer.cs
- PropertyItemInternal.cs
- ProcessHost.cs
- Perspective.cs
- DesignTimeVisibleAttribute.cs
- ContainerVisual.cs
- BamlResourceDeserializer.cs
- SQLSingleStorage.cs
- DnsPermission.cs
- GraphicsContext.cs
- UniqueEventHelper.cs
- PersonalizablePropertyEntry.cs
- ProbeDuplexCD1AsyncResult.cs
- IsolatedStorageException.cs
- AnchoredBlock.cs
- NamedPermissionSet.cs
- SiteMapNode.cs
- ColorConverter.cs
- PtsContext.cs
- XamlBrushSerializer.cs
- FieldBuilder.cs
- GradientStopCollection.cs
- ActiveXHelper.cs
- DataGridViewColumnConverter.cs
- Dictionary.cs
- _StreamFramer.cs
- SafeSystemMetrics.cs
- PropertyMetadata.cs
- Clock.cs
- Table.cs
- DesignBindingValueUIHandler.cs
- JobPageOrder.cs
- DataSourceControl.cs
- InputLanguageSource.cs
- DynamicRendererThreadManager.cs
- MemberListBinding.cs
- ObjectFullSpanRewriter.cs
- SqlConnection.cs
- HyperLinkColumn.cs
- HostUtils.cs
- BitSet.cs
- SpinWait.cs
- TemplatedMailWebEventProvider.cs
- RegexRunnerFactory.cs
- ClientUtils.cs
- StrokeCollectionDefaultValueFactory.cs
- SchemaCreator.cs
- UInt64Converter.cs
- ObjectMaterializedEventArgs.cs
- NetworkInformationPermission.cs
- XmlDomTextWriter.cs
- SQLBoolean.cs
- JsonDataContract.cs
- CharConverter.cs
- FutureFactory.cs
- XslAst.cs
- IntegerFacetDescriptionElement.cs
- LineServices.cs
- FixedStringLookup.cs
- PackageRelationship.cs
- panel.cs
- LabelExpression.cs
- Keywords.cs
- RegexParser.cs
- EditorPartCollection.cs
- TraceProvider.cs
- RemoteTokenFactory.cs