Новая языковая функция ломает леса - не удалось получить тип отражения для DbContext - PullRequest
3 голосов
/ 16 мая 2019

Таким образом, в новых функциях языка реализована возможность сокращать ключевое слово по умолчанию.

public void GenericMethod<T>(T responseObject = default)
{
    //Your code here
}

Вместо старого

public void GenericMethod<T>(T responseObject = default(T))
{
    //Your code here
}

При использовании нового сокращения мы столкнулись с ошибкой, когда можноПоместите вид или контроллер в дотнет ядро.- Сообщение об ошибке «Произошла ошибка при запуске выбранного генератора кода: не удалось получить тип отражения для DbContext: ....»

При возврате к старому способу реализации ошибки «по умолчанию»уходит.

На данный момент новый способ использования ключевого слова по умолчанию - единственный, который мы испытали, когда ломали его, но я предполагаю, что могут быть проблемы с подобными новыми языковыми функциями.

Этона самом деле не вопрос.Мы просто подумали, что было бы неплохо распространить информацию об этой ошибке;Поскольку ни один пост не освещал эту проблему.

Visual studio: Visual studio 2019

Целевая среда: .NET Core 2.2

РЕДАКТИРОВАТЬ: Это не проблема с EF.Если попытаться создать представление без dbContext, где вы используете класс Model (FooClass), ошибка изменится на: Не удалось получить тип отражения для Model: FooClass

1 Ответ

1 голос
/ 23 июля 2019

Подобная проблема здесь.Изменение его обратно на старый способ работал.

public static T Get<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
public static T Get<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default : JsonConvert.DeserializeObject<T>(value);
        }
...