La conversion d'un fichier binaire à une chaîne de caractères et vice versa

J'ai créé un webservice qui renvoie un fichier (binaire). Malheureusement, je ne peux pas utiliser byte[] j'ai donc convertir le tableau d'octets en une chaîne de caractères.
Ce que je fais en ce moment est la suivante (mais il ne fonctionne pas):

Convertir un fichier à la chaîne:

byte[] arr = File.ReadAllBytes(fileName);
System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();  
string fileAsString = enc.GetString(arr);  

Pour vérifier si cela fonctionne correctement, je le convertir via:

System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();
byte[] file = enc.GetBytes(fileAsString);

Mais à la fin, l'original de ce tableau d'octets et le tableau d'octets créé à partir de la chaîne ne sont pas égaux. Dois-je utiliser une autre méthode pour lire le fichier dans un tableau d'octets?