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

BinarySerializableConstraint

BinarySerializableConstraint tests whether an object is serializable in binary format.
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace NUnit.Framework.Constraints { public class BinarySerializableConstraint : Constraint { private readonly BinaryFormatter serializer = new BinaryFormatter(); public override string Description => "binary serializable"; public override ConstraintResult ApplyTo<TActual>(TActual actual) { if (actual == null) throw new ArgumentNullException("actual"); MemoryStream memoryStream = new MemoryStream(); bool isSuccess = false; try { serializer.Serialize(memoryStream, actual); memoryStream.Seek(0, SeekOrigin.Begin); isSuccess = (serializer.Deserialize(memoryStream) != null); } catch (SerializationException) { } return new ConstraintResult(this, actual.GetType(), isSuccess); } protected override string GetStringRepresentation() { return "<binaryserializable>"; } public BinarySerializableConstraint() : base(Array.Empty<object>()) { } } }