diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-08-30 13:48:44 -0700 |
---|---|---|
committer | Andrew <andrewarnott@gmail.com> | 2008-09-01 11:02:44 -0700 |
commit | d385d8d38fc971e75d841b7a55591a67828caf17 (patch) | |
tree | 24d674abfb6dfcb71f5a79de9f86af225162880d /src/DotNetOAuth/ProtocolMessageSerializer.cs | |
parent | 5b33ddfca4d707afdd0a616940b7062d6d6e6276 (diff) | |
download | DotNetOpenAuth-d385d8d38fc971e75d841b7a55591a67828caf17.zip DotNetOpenAuth-d385d8d38fc971e75d841b7a55591a67828caf17.tar.gz DotNetOpenAuth-d385d8d38fc971e75d841b7a55591a67828caf17.tar.bz2 |
Added test for and accomodated required message parts.
Diffstat (limited to 'src/DotNetOAuth/ProtocolMessageSerializer.cs')
-rw-r--r-- | src/DotNetOAuth/ProtocolMessageSerializer.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/DotNetOAuth/ProtocolMessageSerializer.cs b/src/DotNetOAuth/ProtocolMessageSerializer.cs index a9c92bc..b44aec6 100644 --- a/src/DotNetOAuth/ProtocolMessageSerializer.cs +++ b/src/DotNetOAuth/ProtocolMessageSerializer.cs @@ -23,7 +23,7 @@ namespace DotNetOAuth { internal IDictionary<string, string> Serialize(T message) {
if (message == null) throw new ArgumentNullException("message");
- var fields = new Dictionary<string, string>();
+ var fields = new Dictionary<string, string>(StringComparer.Ordinal);
Serialize(fields, message);
return fields;
}
@@ -46,7 +46,13 @@ namespace DotNetOAuth { if (fields == null) throw new ArgumentNullException("fields");
var reader = DictionaryXmlReader.Create(rootElement, fields);
- T result = (T)serializer.ReadObject(reader, false);
+ T result;
+ try {
+ result = (T)serializer.ReadObject(reader, false);
+ } catch (SerializationException ex) {
+ // Missing required fields is one cause of this exception.
+ throw new ProtocolException(Strings.InvalidIncomingMessage, ex);
+ }
result.EnsureValidMessage();
return result;
}
|