i wrote an application which is a custom console that allows execution of various commands. One of the commands allows serialization of data. The input data is a string, which is a list of comma separated values.
My question is - how to make the serialized data compact as much as possible? The serialization format is not important for me.
Here is the command's code:
using CustomConsole.Common;
using System.IO;
using System.Xml.Serialization;
using System;
namespace Shell_Commander.Commands
{
    public class SerializeCommand : ICommand
    {
        private string _serializeCommandName = "serialize";
        public string Name { get { return this._serializeCommandName; } set { _serializeCommandName = value; } }
        public string Execute(string parameters)
        {
            try
            {
                var splittedParameters = parameters.Split(" ");
                var dataToSerialize = splittedParameters[0].Split(",");
                var pathTofile = splittedParameters[1].Replace(@"\", @"\\");
                XmlSerializer serializer = new XmlSerializer(dataToSerialize.GetType());
                using (StreamWriter writer = new StreamWriter(pathTofile))
                {
                    serializer.Serialize(writer, dataToSerialize);
                    var length = new FileInfo(pathTofile).Length;
                    Console.WriteLine($"Wrote file to: {pathTofile}");
                    return length.ToString();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return "0";
            }
        }
    }
}
The command accepts 2 parameters:
- Data to serialize
 - File path (in order to save the serialized data).
 
Example - for the "1,2,4" input, the following file will be saved:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <string>1</string>
  <string>2</string>
  <string>4</string>
</ArrayOfString> 
EDIT:
I want my command to be able to serialize also complex objects in the future, so writing the string as is to the file is not a solution.
I want to use only standard serialization methods and formats.