Ошибка С# "Не поддерживается языком" после перехода на .Net4
Я пытаюсь перенести наш сайт с .Net 3.5 до 4, и я сталкиваюсь с очень странной проблемой.
Код, который отлично работает в 3.5, больше не работает, когда я нацелен на .Net4, давая мне ошибку
"xxx не поддерживается языком".
TimeZoneInfo tzi = !calendarItem.UseUserTimeZone ? user.Settings.TimeZoneInfo : l.TimeZoneItem.Info;
В этой строке кода ошибка показывает на ".TimeZoneInfo
" и ".Info
" оба типа "System.TimeZoneInfo
".
Определение свойства user.Settings.TimeZoneInfo
:
public TimeZoneInfo TimeZoneInfo
{
get { return World.TimeZones[Convert.ToInt32(this[Setting.TimeZoneInfo])].Info; }
set { this[Setting.TimeZoneInfo] = value.ToTimeZoneItem().Id.ToString(); }
}
Определение свойства l.TimeZoneItem.Info
:
public TimeZoneInfo Info
{
get { return info; }
}
Не совсем уверен, что происходит здесь. Вам нужна помощь в этом.
Ответы
Ответ 1
Вероятно, это проблема несоответствия сборки.
У меня была эта проблема, когда я хотел использовать сборку, которая создала круговую ссылку с другим проектом. Как только я исправил эту проблему с круговой ссылкой, ошибка больше не появлялась.
Ответ 2
Это также происходит, когда нижняя библиотека использует другую версию .NET Framework. Имел подобную проблему, и когда я обновил нижние библиотеки до 3.5 фреймворка и фактическую библиотеку в рамках 3.5, проблема исчезла.
Ответ 3
Это может помочь вызвать поле свойств по-разному. Поскольку TimeZoneInfo также является классом в пространстве имен System.
Ответ 4
Совсем знакомый с Джонатаном Перри, в моем случае у меня была ссылка на старую сборку, а не на скомпилированную. Я удалил ссылку и добавил ее снова, указывая на правильную DLL.
Ответ 5
Подобно некоторым другим сообщениям, в моем случае я полностью лишился ссылки на сборку. Он не был напрямую доступен из проекта, с которым я работал, но был доступен в другом связанном проекте, на который я ссылался.
Ответ 6
Как и в других случаях, если ссылочная сборка ориентирована на "Любой процессор", в то время как текущая сборка ориентирована на "Любой процессор", это вызовет проблему (по крайней мере, на 64-битной машине).
Ответ 7
Это также происходит, когда отсутствует сборка, на которую ссылается другая сборка в вашем проекте