//-----------------------------------------------------------------------
//
// Copyright (c) Outercurve Foundation. All rights reserved.
//
//-----------------------------------------------------------------------
namespace DotNetOpenAuth.Messaging {
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Text;
///
/// An interface that appears on messages that need to retain a description of
/// what their literal payload was when they were deserialized.
///
[ContractClass(typeof(IMessageOriginalPayloadContract))]
public interface IMessageOriginalPayload {
///
/// Gets or sets the original message parts, before any normalization or default values were assigned.
///
[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "By design")]
IDictionary OriginalPayload { get; set; }
}
///
/// Code contract for the interface.
///
[ContractClassFor(typeof(IMessageOriginalPayload))]
internal abstract class IMessageOriginalPayloadContract : IMessageOriginalPayload {
///
/// Gets or sets the original message parts, before any normalization or default values were assigned.
///
IDictionary IMessageOriginalPayload.OriginalPayload {
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
}
}
}