summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth/ProtocolMessageSerializer.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-08-30 11:27:51 -0700
committerAndrew <andrewarnott@gmail.com>2008-09-01 11:02:40 -0700
commit36f545864647177b36a4c8f26af0e842fda86e88 (patch)
tree274876b73b39361c70a7591015a62c28ddb60261 /src/DotNetOAuth/ProtocolMessageSerializer.cs
parent5df67c5b5bbd0c7463cec9b1f594d18de345a7d5 (diff)
downloadDotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.zip
DotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.tar.gz
DotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.tar.bz2
Added message validation.
Diffstat (limited to 'src/DotNetOAuth/ProtocolMessageSerializer.cs')
-rw-r--r--src/DotNetOAuth/ProtocolMessageSerializer.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/DotNetOAuth/ProtocolMessageSerializer.cs b/src/DotNetOAuth/ProtocolMessageSerializer.cs
index 14422dd..14b6b2f 100644
--- a/src/DotNetOAuth/ProtocolMessageSerializer.cs
+++ b/src/DotNetOAuth/ProtocolMessageSerializer.cs
@@ -28,10 +28,18 @@ namespace DotNetOAuth {
if (message == null) throw new ArgumentNullException("message");
var fields = new Dictionary<string, string>();
+ Serialize(fields, message);
+ return fields;
+ }
+
+ internal void Serialize(IDictionary<string, string> fields, T message) {
+ if (fields == null) throw new ArgumentNullException("fields");
+ if (message == null) throw new ArgumentNullException("message");
+
+ message.EnsureValidMessage();
using (XmlWriter writer = DictionaryXmlWriter.Create(fields)) {
serializer.WriteObjectContent(writer, message);
}
- return fields;
}
/// <summary>
@@ -43,6 +51,7 @@ namespace DotNetOAuth {
var reader = DictionaryXmlReader.Create(rootElement, fields);
T result = (T)serializer.ReadObject(reader, false);
+ result.EnsureValidMessage();
return result;
}
}