У меня есть простой метод, который использует блок итератора для возврата IEnumerable
:
IEnumerable<MyItem> GetItems()
{
foreach (var item in Items)
{
yield return item;
}
}
Обычно этот метод работает нормально, но если я применяю [ SecurityCritical]
для сборки (или для класса, содержащего указанный выше метод), он выдает исключение TypeLoadException
при попытке вызвать метод. Тип, который не загружается, - это созданный компилятором класс, соответствующий методу итератора, и именно его метод GetEnumerator
вызывает проблему, поскольку он прозрачен с точки зрения безопасности.
Для сравнения: если я изменю вышеуказанный метод так, чтобы он заполнял и возвращал List
, все будет работать нормально.
Есть предложения?
Спасибо,
Тим.