При разработке приложений .NET Core 2.0 у меня возникают проблемы с условными точками останова, наблюдениями и немедленными оценками окна. Я получаю следующую ошибку:
modifiers.GroupBy(c => c.Modifier.Group).ToList()
выбрал исключение типа "System.ArgumentException"
Данные: {System.Collections.ListDictionaryInternal}
HResult: -2147024809
HelpLink: null
InnerException: null
Сообщение: "Невозможно оценить функцию безопасности".
ParamName: null
Источник: null
StackTrace: null
TargetSite: null
Что может вызвать эта проблема? Есть ли обходной путь? Это прекрасно работает в приложении .NET Framework 4.x.
Изменить: Добавление образца кода
Используя следующий класс:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Group { get; set; }
}
В обычном консольном приложении, ориентированном на .NET Core 2.0:
static void Main(string[] args)
{
var people = new List<Person>
{
new Person { Age = 17, Name = "Person A", Group = "Group A" },
new Person { Age = 20, Name = "Person B", Group = "Group A" },
new Person { Age = 23, Name = "Person C", Group = "Group A" },
new Person { Age = 17, Name = "Person D", Group = "Group B" },
new Person { Age = 25, Name = "Person E", Group = "Group B" },
new Person { Age = 40, Name = "Person F", Group = "Group B" },
};
// Make sure that System.Linq gets loaded
people.Where(c => c.Name == "Person A").First();
}
Задайте точку останова после инициализации List<Person>
. В немедленном окне, пытаясь оценить GroupBy
или Where
, который не является простой проверкой равенства, он выкинет ArgumentException
с сообщением "Невозможно оценить функцию безопасности".
Несколько примеров:
people.Where(c => c.Name.Contains("F")).ToList()
people.GroupBy(c => c.Group).ToList()
Примечание. Операторы часов работают в Visual Studio Code, но не в Visual Studio 2017 Preview 3.