/// <summary> /// Serializes an object. /// </summary> /// <param name="value">The value to serialize</param> /// <returns>The serialized value</returns> public static string Serialize(object value) { if (value == null) { throw new ArgumentNullException("value"); } var array = value as object[]; if (array != null) { value = new XunitSerializationInfo.ArraySerializer(array); } var serializable = value as IXunitSerializable; if (serializable == null) { throw new ArgumentException("Cannot serialize an object that does not implement " + typeof(IXunitSerializable).FullName, "value"); } var serializationInfo = new XunitSerializationInfo(serializable); return(String.Format("{0}:{1}", GetTypeNameForSerialization(value.GetType()), serializationInfo.ToSerializedString())); }