Skip to content

Commit ef1d87e

Browse files
authored
add tostring support for xmldocument (#480)
1 parent 0f8ee7d commit ef1d87e

File tree

5 files changed

+44
-11
lines changed

5 files changed

+44
-11
lines changed

docs/serializer-settings.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1293,9 +1293,28 @@ The default mapping is:
12931293
var converted = (XElement) target;
12941294
return new(converted.ToString(), "xml");
12951295
}
1296+
},
1297+
{
1298+
typeof(XmlDocument), (target, settings) =>
1299+
{
1300+
var xmlDocument = (XmlDocument) target;
1301+
var stringBuilder = new StringBuilder();
1302+
var writerSettings = new XmlWriterSettings
1303+
{
1304+
Indent = true,
1305+
IndentChars = " ",
1306+
NewLineChars = "\r\n",
1307+
NewLineHandling = NewLineHandling.Replace
1308+
};
1309+
using (var writer = XmlWriter.Create(stringBuilder, writerSettings))
1310+
{
1311+
xmlDocument.Save(writer);
1312+
}
1313+
return new(stringBuilder.ToString(), "xml");
1314+
}
12961315
}
12971316
```
1298-
<sup><a href='/src/Verify/Serialization/VerifierSettings.cs#L57-L128' title='Snippet source file'>snippet source</a> | <a href='#snippet-typetostringmapping' title='Start of snippet'>anchor</a></sup>
1317+
<sup><a href='/src/Verify/Serialization/VerifierSettings.cs#L57-L147' title='Snippet source file'>snippet source</a> | <a href='#snippet-typetostringmapping' title='Start of snippet'>anchor</a></sup>
12991318
<!-- endSnippet -->
13001319

13011320
This bypasses the Guid and DateTime scrubbing mentioned above.

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<PropertyGroup>
44
<NoWarn>CS1591;CS0649;xUnit1026;xUnit1013;msb3277;CS0436</NoWarn>
5-
<Version>16.1.2</Version>
5+
<Version>16.2.0</Version>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<LangVersion>10</LangVersion>
88
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>

src/Verify.Tests/SimpleTypeTests.Run_arg=System.Xml.XmlDocument.verified.txt

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-16"?>
2+
<body>
3+
<node>text</node>
4+
</body>

src/Verify/Serialization/VerifierSettings.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,25 @@ public static bool TryGetToString<T>(
123123
var converted = (XElement) target;
124124
return new(converted.ToString(), "xml");
125125
}
126+
},
127+
{
128+
typeof(XmlDocument), (target, settings) =>
129+
{
130+
var xmlDocument = (XmlDocument) target;
131+
var stringBuilder = new StringBuilder();
132+
var writerSettings = new XmlWriterSettings
133+
{
134+
Indent = true,
135+
IndentChars = " ",
136+
NewLineChars = "\r\n",
137+
NewLineHandling = NewLineHandling.Replace
138+
};
139+
using (var writer = XmlWriter.Create(stringBuilder, writerSettings))
140+
{
141+
xmlDocument.Save(writer);
142+
}
143+
return new(stringBuilder.ToString(), "xml");
144+
}
126145
}
127146

128147
#endregion

0 commit comments

Comments
 (0)