Боюсь, есть только один способ, как это сделать.Вам необходимо реализовать пользовательский тип с помощью специального средства форматирования.
Похоже, что не поддерживаются два символа / ярлыка валюты и / или один из четырех предопределенных форматов (см .: замечания в документации )
Примером может быть простая версия.
using System;
using System.Globalization;
namespace TwoCurrencySymbols
{
internal sealed class Currency : IFormattable
{
private readonly IFormattable value;
public Currency(IFormattable myValue)
{
value = myValue;
}
public string ToString(string format, IFormatProvider formatProvider)
{
if (format == "C")
{
return ("EUR " + value.ToString(format, formatProvider));
}
return value.ToString(format, formatProvider);
}
}
internal static class Program
{
private static void Main()
{
Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "{0:C}", new Currency(1)));
}
}
}
Пример построен для валюты ЕВРО (моя локаль) .В вашей реальной реализации вам необходимо определить, должен ли формат быть изменен, например, если if ((format == "C") && IsTaiwan(formatProvider))
.