My inclination is not to support a Connection Attributes setting that allows the client to send arbitrary values to the server (and bear the burden of escaping them properly), but instead to add single-purpose settings (that may end up setting a connection attribute).
MySqlConnectionStringBuilder connStringSb = new MySqlConnectionStringBuilder(ConnectionString);
connStringSb.ApplicationName = "";
connection = new MySqlConnection(connStringSb.ToString());
Would this be okay? Would there be any performance issue? Every DB calls uses this method and it creates new instance of MySqlConnectionStringBuilder, setting the application name and creating new string via the ToString(), and create the new MySqlConnection,