#c#
#c#
Вопрос:
Я получаю System.InvalidProgramException: Common Language Runtime detected an invalid program
сборку, в которой определен метод расширения, как показано ниже.
public static class Extensions
{
public const string DATE_TIME_FORMAT = "MMMM dd, yyyy HH:mm:ss";
public static string ToStorageString(this DateTime value, string format = DATE_TIME_FORMAT)
{
return value.ToString(format ?? DATE_TIME_FORMAT);
}
}
Но если я изменю метод расширения, чтобы вместо этого использовать строковый литерал, исключение не произойдет, пример ниже.
public static class Extensions
{
public static readonly string DATE_TIME_FORMAT = "MMMM dd, yyyy HH:mm:ss";
public static string ToStorageString(this DateTime value, string format = "MMMM dd, yyyy HH:mm:ss")
{
return value.ToString(format ?? DATE_TIME_FORMAT);
}
}
Я компилирую сборку для .net 4.6.2
Я не уверен, почему исключение возникает с первым кодом, кто-нибудь может объяснить?
Комментарии:
1. Работает на моем поле. Можете ли вы предоставить нам какие-либо подробности о вашей среде? Вы используете VS? Какая версия? Обновления? и т.д.?
2. @MattJohnson создан с использованием обновления 3 VS2015. Отлично работает в режиме отладки. Пробовал приложение в Windows 8.1, Windows 10 и Windows 7, та же ошибка.