summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth/ProtocolMessageSerializer.cs
diff options
context:
space:
mode:
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;
}
}