<PackageReference Include="NUnit" Version="4.3.0" />

XmlSerializableConstraint

XmlSerializableConstraint tests whether an object is serializable in XML format.
using System; using System.IO; using System.Runtime.CompilerServices; using System.Xml.Serialization; namespace NUnit.Framework.Constraints { [NullableContext(1)] [Nullable(0)] public class XmlSerializableConstraint : Constraint { public override string Description => "XML serializable"; public override ConstraintResult ApplyTo<[Nullable(2)] TActual>(TActual actual) { if (actual == null) throw new ArgumentNullException("actual"); MemoryStream memoryStream = new MemoryStream(); bool isSuccess = false; try { XmlSerializer xmlSerializer = new XmlSerializer(actual.GetType()); xmlSerializer.Serialize(memoryStream, actual); memoryStream.Seek(0, SeekOrigin.Begin); isSuccess = (xmlSerializer.Deserialize(memoryStream) != null); } catch (NotSupportedException) { } catch (InvalidOperationException) { } return new ConstraintResult(this, actual.GetType(), isSuccess); } protected override string GetStringRepresentation() { return "<xmlserializable>"; } public XmlSerializableConstraint() : base(Array.Empty<object>()) { } } }