public static T[] SerializeUbiArtArray <T>(this IBinarySerializer s, T[] array, string name = null)
        {
            // Serialize the size
            array = s.SerializeArraySize <T, uint>(array, name: name);

            // Serialize the array values
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = s.SerializeUbiArtGenericValue <T>(array[i], name: $"{nameof(array)}[{i}]");
            }

            // Return the array
            return(array);
        }
 /// <summary>
 /// Handles the serialization using the specified serializer
 /// </summary>
 /// <param name="s">The serializer</param>
 public void Serialize(IBinarySerializer s)
 {
     Key   = s.SerializeUbiArtGenericValue <TKey>(Key, name: nameof(Key));
     Value = s.SerializeObject <TValue>(Value, name: nameof(Value));
 }