По вашему вопросу я нахожу, что вы что-то неправильно поняли, надеюсь, это поможет. Convert.FromBase64String принимает строку (которая всегда похожа на ALJWKA==
) и выводит byte[]
, тогда как Convert.ToBase64String противоположна.Поэтому ваш код:
string attachmentInString = "Hello test";
byte[] attachmentInBytes = System.Convert.FromBase64String(attachmentInString);
сгенерирует исключение, потому что «Hello test» не является допустимой строкой base64.См. Другой метод
public void AddAttachment(byte[] attachment)
аргумент - byte[]
, поэтому в этом методе вы максимально конвертируете его в строку типа base64.Вы не можете сказать, является ли byte[]
допустимой строкой base64 или нет.Вы можете сделать это только для строки:
public void AddAttachment(string attachment) //well I know it looks strange
{
byte[] bytes = null;
try
{
bytes = Convert.FromBase64String(attachment);
}
catch
{
//invalid string format
}
}