Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / UrlEncodedParameterWriter.cs / 1305376 / UrlEncodedParameterWriter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Services.Protocols {
using System.IO;
using System;
using System.Text;
using System.Xml.Serialization;
using System.Reflection;
using System.Collections;
using System.Web.Services;
///
///
/// [To be supplied.]
///
public abstract class UrlEncodedParameterWriter : MimeParameterWriter {
ParameterInfo[] paramInfos;
int numberEncoded;
Encoding encoding;
///
public override Encoding RequestEncoding {
get { return encoding; }
set { encoding = value; }
}
///
///
/// [To be supplied.]
///
public override object GetInitializer(LogicalMethodInfo methodInfo) {
if (!ValueCollectionParameterReader.IsSupported(methodInfo)) return null;
return methodInfo.InParameters;
}
///
///
/// [To be supplied.]
///
public override void Initialize(object initializer) {
this.paramInfos = (ParameterInfo[])initializer;
}
///
///
/// [To be supplied.]
///
protected void Encode(TextWriter writer, object[] values) {
numberEncoded = 0;
for (int i = 0; i < paramInfos.Length; i++) {
ParameterInfo paramInfo = paramInfos[i];
if (paramInfo.ParameterType.IsArray) {
Array array = (Array)values[i];
for (int j = 0; j < array.Length; j++) {
Encode(writer, paramInfo.Name, array.GetValue(j));
}
}
else {
Encode(writer, paramInfo.Name, values[i]);
}
}
}
///
protected void Encode(TextWriter writer, string name, object value) {
if (numberEncoded > 0) writer.Write('&');
writer.Write(UrlEncode(name));
writer.Write('=');
writer.Write(UrlEncode(ScalarFormatter.ToString(value)));
numberEncoded++;
}
string UrlEncode(string value) {
if (encoding != null)
return UrlEncoder.UrlEscapeString(value, encoding);
else
return UrlEncoder.UrlEscapeStringUnicode(value);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- COAUTHIDENTITY.cs
- MenuAutoFormat.cs
- PropertyPushdownHelper.cs
- MailMessage.cs
- CodeDomSerializationProvider.cs
- PostBackTrigger.cs
- ThumbButtonInfoCollection.cs
- ContextQuery.cs
- ChtmlPageAdapter.cs
- SafeViewOfFileHandle.cs
- HtmlFormWrapper.cs
- SoapReflectionImporter.cs
- ErrorTableItemStyle.cs
- WebPartExportVerb.cs
- AttributeCollection.cs
- BitmapEffectGroup.cs
- ContainsRowNumberChecker.cs
- ProcessInfo.cs
- Variable.cs
- ValidatorCollection.cs
- CommentEmitter.cs
- BindingExpression.cs
- ContentIterators.cs
- SerializationSectionGroup.cs
- DelegateSerializationHolder.cs
- TextEmbeddedObject.cs
- NonBatchDirectoryCompiler.cs
- StateWorkerRequest.cs
- URL.cs
- SecureUICommand.cs
- PrincipalPermission.cs
- XmlSchemaSubstitutionGroup.cs
- Light.cs
- AuthenticationConfig.cs
- DesignSurfaceServiceContainer.cs
- MasterPage.cs
- EventSetter.cs
- GeneralTransformGroup.cs
- CompressedStack.cs
- XPathException.cs
- newinstructionaction.cs
- WSHttpBindingBase.cs
- ConstantProjectedSlot.cs
- BamlLocalizabilityResolver.cs
- UnknownWrapper.cs
- DesignerVerbCollection.cs
- IndependentlyAnimatedPropertyMetadata.cs
- TaiwanLunisolarCalendar.cs
- ClientSettingsSection.cs
- XmlHierarchicalEnumerable.cs
- HttpCookiesSection.cs
- CodeTypeReferenceCollection.cs
- CodeTypeDeclaration.cs
- BamlWriter.cs
- Polygon.cs
- JobDuplex.cs
- VectorValueSerializer.cs
- DoubleCollectionValueSerializer.cs
- TableLayoutColumnStyleCollection.cs
- login.cs
- FlowNode.cs
- TreeNodeStyleCollection.cs
- Grant.cs
- EventToken.cs
- MarkupCompilePass2.cs
- PopupRoot.cs
- InstallerTypeAttribute.cs
- SaveFileDialogDesigner.cs
- WorkflowViewManager.cs
- EdmEntityTypeAttribute.cs
- SamlAssertionKeyIdentifierClause.cs
- ProcessModelSection.cs
- SHA1CryptoServiceProvider.cs
- LoginDesignerUtil.cs
- XPathAxisIterator.cs
- CodeDirectionExpression.cs
- XamlHostingSectionGroup.cs
- ClientCultureInfo.cs
- KerberosRequestorSecurityToken.cs
- QilList.cs
- Pair.cs
- ObfuscationAttribute.cs
- IncrementalReadDecoders.cs
- PointF.cs
- ToolStripPanelDesigner.cs
- ParameterDataSourceExpression.cs
- Rijndael.cs
- SystemIPInterfaceProperties.cs
- PartBasedPackageProperties.cs
- OrderingInfo.cs
- EntityExpressionVisitor.cs
- WindowsFont.cs
- Attribute.cs
- RuntimeIdentifierPropertyAttribute.cs
- FontCollection.cs
- CustomError.cs
- AdCreatedEventArgs.cs
- SqlFormatter.cs
- VirtualDirectoryMappingCollection.cs
- RecognitionResult.cs