| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //----------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //----------------------------------------------------------------------------
- namespace System.ServiceModel.Channels
- {
- using System;
- using System.ServiceModel;
- using System.IO;
- using System.ServiceModel.Diagnostics;
- using System.Xml;
- /// <summary>
- /// Base class for non-SOAP messages
- /// </summary>
- abstract class ContentOnlyMessage : Message
- {
- MessageHeaders headers;
- MessageProperties properties;
- protected ContentOnlyMessage()
- {
- this.headers = new MessageHeaders(MessageVersion.None);
- }
- public override MessageHeaders Headers
- {
- get
- {
- if (IsDisposed)
- {
- #pragma warning suppress 56503 // [....], required by base class contract
- throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
- }
- return this.headers;
- }
- }
- public override MessageProperties Properties
- {
- get
- {
- if (IsDisposed)
- {
- #pragma warning suppress 56503 // [....], required by base class contract
- throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
- }
- if (this.properties == null)
- {
- this.properties = new MessageProperties();
- }
- return this.properties;
- }
- }
- public override MessageVersion Version
- {
- get
- {
- return headers.MessageVersion;
- }
- }
- protected override void OnBodyToString(XmlDictionaryWriter writer)
- {
- OnWriteBodyContents(writer);
- }
- }
- class StringMessage : ContentOnlyMessage
- {
- string data;
- public StringMessage(string data)
- : base()
- {
- this.data = data;
- }
- public override bool IsEmpty
- {
- get
- {
- return String.IsNullOrEmpty(this.data);
- }
- }
- protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
- {
- if (data != null && data.Length > 0)
- {
- writer.WriteElementString("BODY", data);
- }
- }
- }
- class NullMessage : StringMessage
- {
- public NullMessage()
- : base(string.Empty)
- {
- }
- }
- }
|