summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth/Messaging/Channel.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-11-01 20:57:22 -0700
committerAndrew <andrewarnott@gmail.com>2008-11-01 20:57:22 -0700
commite3b0e50c390de98c9aadcf10451fd17611ad431b (patch)
treef182aa5ee46b1dc3086b4ca0693b41ab84d03032 /src/DotNetOAuth/Messaging/Channel.cs
parentdb11b0a9fa4a304400ca1223427c3ca37f10004e (diff)
downloadDotNetOpenAuth-e3b0e50c390de98c9aadcf10451fd17611ad431b.zip
DotNetOpenAuth-e3b0e50c390de98c9aadcf10451fd17611ad431b.tar.gz
DotNetOpenAuth-e3b0e50c390de98c9aadcf10451fd17611ad431b.tar.bz2
Hugely refactored ServiceProvider and Consumer classes.
Messages are now exposed in the method signatures instead of raw Response instances.
Diffstat (limited to 'src/DotNetOAuth/Messaging/Channel.cs')
-rw-r--r--src/DotNetOAuth/Messaging/Channel.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/DotNetOAuth/Messaging/Channel.cs b/src/DotNetOAuth/Messaging/Channel.cs
index 77263eb..c283382 100644
--- a/src/DotNetOAuth/Messaging/Channel.cs
+++ b/src/DotNetOAuth/Messaging/Channel.cs
@@ -93,6 +93,24 @@ namespace DotNetOAuth.Messaging {
}
/// <summary>
+ /// An event fired whenever a message is about to be encoded and sent.
+ /// </summary>
+ internal event EventHandler<ChannelEventArgs> Sending;
+
+ /// <summary>
+ /// Fires the <see cref="Sending"/> event.
+ /// </summary>
+ /// <param name="message">The message about to be encoded and sent.</param>
+ protected virtual void OnSending(IProtocolMessage message) {
+ if (message == null) throw new ArgumentNullException("message");
+
+ var sending = this.Sending;
+ if (sending != null) {
+ sending(this, new ChannelEventArgs(message));
+ }
+ }
+
+ /// <summary>
/// Gets a tool that can figure out what kind of message is being received
/// so it can be deserialized.
/// </summary>
@@ -513,6 +531,8 @@ namespace DotNetOAuth.Messaging {
throw new ArgumentNullException("message");
}
+ this.OnSending(message);
+
MessageProtections appliedProtection = MessageProtections.None;
foreach (IChannelBindingElement bindingElement in this.bindingElements) {
if (bindingElement.PrepareMessageForSending(message)) {