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
- Parser.cs
- DocumentOrderQuery.cs
- XsdBuildProvider.cs
- Events.cs
- FontStretches.cs
- CommandID.cs
- XsltSettings.cs
- HuffModule.cs
- XPathNodeList.cs
- UriTemplateDispatchFormatter.cs
- HyperLinkColumn.cs
- EventlogProvider.cs
- XmlWrappingWriter.cs
- DataContractAttribute.cs
- SqlGenerator.cs
- DateTimeSerializationSection.cs
- _OSSOCK.cs
- DataGridViewRowStateChangedEventArgs.cs
- CustomErrorsSectionWrapper.cs
- Win32Exception.cs
- JsonFormatWriterGenerator.cs
- HyperLinkColumn.cs
- HtmlTable.cs
- MultiplexingFormatMapping.cs
- ListenerConnectionModeReader.cs
- StopStoryboard.cs
- ServicePointManagerElement.cs
- SqlDependencyListener.cs
- DateTimeParse.cs
- TextBoxAutoCompleteSourceConverter.cs
- PerfService.cs
- DrawingCollection.cs
- InvokeFunc.cs
- MailAddressCollection.cs
- DefaultHttpHandler.cs
- CodeAssignStatement.cs
- QueryPageSettingsEventArgs.cs
- GridViewColumnHeaderAutomationPeer.cs
- MetadataArtifactLoaderCompositeFile.cs
- ConnectionModeReader.cs
- DynamicPropertyHolder.cs
- _SSPISessionCache.cs
- PageTheme.cs
- BitmapSizeOptions.cs
- XPathNodeInfoAtom.cs
- CharEntityEncoderFallback.cs
- Composition.cs
- WsdlExporter.cs
- XmlSchemaProviderAttribute.cs
- WindowsListViewGroupHelper.cs
- InheritablePropertyChangeInfo.cs
- SkinBuilder.cs
- WmlListAdapter.cs
- ToolStripContentPanelRenderEventArgs.cs
- IgnoreSection.cs
- WebHostedComPlusServiceHost.cs
- DeclarativeCatalogPart.cs
- Point3DAnimationBase.cs
- XsdValidatingReader.cs
- SendKeys.cs
- Material.cs
- XmlBoundElement.cs
- SqlGenericUtil.cs
- UserNameSecurityTokenProvider.cs
- SamlSerializer.cs
- UnsafeNativeMethods.cs
- TransformCollection.cs
- PreservationFileWriter.cs
- DateTime.cs
- Module.cs
- ServicePoint.cs
- QuaternionValueSerializer.cs
- ByeMessageApril2005.cs
- CellTreeNode.cs
- AssemblyAttributesGoHere.cs
- ConfigurationSection.cs
- NativeMethodsOther.cs
- TextEffect.cs
- MsdtcWrapper.cs
- AccessibleObject.cs
- PartitionedStream.cs
- UnsafeNativeMethods.cs
- GenericIdentity.cs
- WebZone.cs
- SpecialNameAttribute.cs
- LassoHelper.cs
- UserControlParser.cs
- CompositeActivityMarkupSerializer.cs
- WebPartConnectionsConfigureVerb.cs
- FolderBrowserDialog.cs
- DelegatingConfigHost.cs
- HttpListenerException.cs
- ActivityExecutorOperation.cs
- GlyphCache.cs
- DropShadowBitmapEffect.cs
- ClientUtils.cs
- UpdateTracker.cs
- webeventbuffer.cs
- PointAnimationUsingPath.cs
- NodeFunctions.cs