Skip to content
This repository was archived by the owner on Feb 12, 2025. It is now read-only.

Commit 1b1bf62

Browse files
committed
Added CanConvertXmlToObject to help migration code
1 parent 13b0e7f commit 1b1bf62

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

project/Remote/XmlConversionUtil.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,33 @@ public static object ConvertXmlToObject(Type messageType, string message)
121121

122122
return messageObj;
123123
}
124+
125+
/// <summary>
126+
/// Indicates whether or not a message string can be converted into an object.
127+
/// </summary>
128+
/// <param name="messageType">The type of message.</param>
129+
/// <param name="message">The XML of the message.</param>
130+
/// <returns>true if the message can be deserialized to the given message type.</returns>
131+
public static bool CanConvertXmlToObject(Type messageType, string message)
132+
{
133+
// Make sure the serialiser has been loaded
134+
if (!messageSerialisers.ContainsKey(messageType))
135+
{
136+
messageSerialisers[messageType] = new XmlSerializer(messageType);
137+
}
138+
139+
// Perform the test
140+
try
141+
{
142+
using (StringReader reader = new StringReader(message))
143+
using (XmlReader xmlReader = XmlReader.Create(reader))
144+
return messageSerialisers[messageType].CanDeserialize(xmlReader);
145+
}
146+
catch (XmlException)
147+
{
148+
return false;
149+
}
150+
}
124151
#endregion
125152

126153
#region ConvertObjectToXml()

0 commit comments

Comments
 (0)