Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / SoapExtensionStream.cs / 1305376 / SoapExtensionStream.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System; using System.IO; using System.Web.Services; internal class SoapExtensionStream : Stream { internal Stream innerStream; bool hasWritten = false; bool streamReady; internal SoapExtensionStream() { } private bool EnsureStreamReady() { if (streamReady) return true; throw new InvalidOperationException(Res.GetString(Res.WebBadStreamState)); } public override bool CanRead { get { EnsureStreamReady(); return innerStream.CanRead; } } public override bool CanSeek { get { EnsureStreamReady(); return innerStream.CanSeek; } } public override bool CanWrite { get { EnsureStreamReady(); return innerStream.CanWrite; } } internal bool HasWritten { get { return this.hasWritten; } } public override long Length { get { EnsureStreamReady(); return innerStream.Length; } } public override long Position { get { EnsureStreamReady(); return innerStream.Position; } set { EnsureStreamReady(); this.hasWritten = true; innerStream.Position = value; } } protected override void Dispose(bool disposing) { try { if (disposing) { EnsureStreamReady(); this.hasWritten = true; innerStream.Close(); } } finally { base.Dispose(disposing); } } public override void Flush() { EnsureStreamReady(); this.hasWritten = true; innerStream.Flush(); } public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, Object state) { EnsureStreamReady(); return innerStream.BeginRead(buffer, offset, count, callback, state); } public override int EndRead(IAsyncResult asyncResult) { EnsureStreamReady(); return innerStream.EndRead(asyncResult); } public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, Object state) { EnsureStreamReady(); this.hasWritten = true; return innerStream.BeginWrite(buffer, offset, count, callback, state); } public override void EndWrite(IAsyncResult asyncResult) { EnsureStreamReady(); this.hasWritten = true; innerStream.EndWrite(asyncResult); } public override long Seek(long offset, SeekOrigin origin) { EnsureStreamReady(); return innerStream.Seek(offset, origin); } public override void SetLength(long value) { EnsureStreamReady(); innerStream.SetLength(value); } public override int Read(byte[] buffer, int offset, int count) { EnsureStreamReady(); return innerStream.Read(buffer, offset, count); } public override int ReadByte() { EnsureStreamReady(); return innerStream.ReadByte(); } public override void Write(byte[] buffer, int offset, int count) { EnsureStreamReady(); this.hasWritten = true; innerStream.Write(buffer, offset, count); } public override void WriteByte(byte value) { EnsureStreamReady(); this.hasWritten = true; innerStream.WriteByte(value); } internal void SetInnerStream(Stream stream) { innerStream = stream; this.hasWritten = false; } internal void SetStreamReady() { streamReady = true; } } } // 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
- XmlNodeChangedEventArgs.cs
- MailSettingsSection.cs
- RectAnimationClockResource.cs
- ResourceIDHelper.cs
- InternalMappingException.cs
- PropertyGridCommands.cs
- MissingMemberException.cs
- SqlTypesSchemaImporter.cs
- XmlNamespaceMapping.cs
- SqlUtils.cs
- WebPartVerbsEventArgs.cs
- DbParameterCollection.cs
- ResolveResponse.cs
- SqlCachedBuffer.cs
- BitmapEffectRenderDataResource.cs
- MgmtResManager.cs
- RunInstallerAttribute.cs
- DesignerActionItemCollection.cs
- SHA512Managed.cs
- PassportIdentity.cs
- AssemblyBuilder.cs
- ServiceObjectContainer.cs
- Rect3D.cs
- LicenseManager.cs
- SecurityProtocolFactory.cs
- Style.cs
- JsonDeserializer.cs
- RuntimeCompatibilityAttribute.cs
- XmlSchemaValidationException.cs
- ReferenceSchema.cs
- HMAC.cs
- GeneralTransform3DCollection.cs
- SchemaCollectionCompiler.cs
- ExceptionUtil.cs
- BaseDataList.cs
- CompoundFileDeflateTransform.cs
- JumpPath.cs
- InputLanguageCollection.cs
- ConversionContext.cs
- CustomAttributeBuilder.cs
- SqlStatistics.cs
- AdCreatedEventArgs.cs
- DataTableCollection.cs
- WhitespaceRuleReader.cs
- DataGridViewCellConverter.cs
- RemotingAttributes.cs
- EditingScopeUndoUnit.cs
- PreviewPageInfo.cs
- ConfigXmlCDataSection.cs
- PingOptions.cs
- TypeDescriptor.cs
- Comparer.cs
- bindurihelper.cs
- LabelLiteral.cs
- WorkflowOperationBehavior.cs
- CodeMemberField.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- TypefaceMetricsCache.cs
- ColorAnimation.cs
- BitmapEffectInput.cs
- FormsAuthenticationTicket.cs
- Encoder.cs
- PropertySegmentSerializationProvider.cs
- HostedBindingBehavior.cs
- Int64Storage.cs
- EventPropertyMap.cs
- XmlElement.cs
- Keywords.cs
- CodeTryCatchFinallyStatement.cs
- TemplateBindingExpression.cs
- activationcontext.cs
- ClientScriptManagerWrapper.cs
- DataServicePagingProviderWrapper.cs
- WebConfigurationHost.cs
- SQLBytesStorage.cs
- Normalization.cs
- ListViewGroup.cs
- AsyncCompletedEventArgs.cs
- KeyTimeConverter.cs
- DetailsViewUpdateEventArgs.cs
- HMACRIPEMD160.cs
- RunInstallerAttribute.cs
- XhtmlBasicListAdapter.cs
- SecurityDocument.cs
- TimeEnumHelper.cs
- SQLDateTimeStorage.cs
- SymbolTable.cs
- ImageBrush.cs
- ProxyWebPartConnectionCollection.cs
- OpenTypeLayout.cs
- AttributedMetaModel.cs
- PasswordTextNavigator.cs
- sqlpipe.cs
- TransactionFormatter.cs
- TransformCollection.cs
- PerformanceCountersElement.cs
- ExpressionEvaluator.cs
- XmlSchemaDocumentation.cs
- wgx_commands.cs
- FontUnitConverter.cs