Есть сборка, в которой определен internal класс с публичным полем. Объект этого класса передается другой сборке, которая читает публичное поле через Reflection. Все работает нормально. Но если то же самое сделать через Emit, то вылетает FieldAccessException. В связи с этим два вопроса:
1) Почему так происходит (в смысле почему рефлекшен работает, а эмит нет)?
2) Как бороться?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, prVovik, Вы писали:
V>>1) Почему так происходит (в смысле почему рефлекшен работает, а эмит нет)?
AVK>Потому что JIT выполняет верификацию кода перед компиляцией.
Исключение вылетает во уже во время работы.
V>>2) Как бороться?
AVK>Если версия фреймворка >= 2.0, то см. атрибут InternalsVisibleTo
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, prVovik, Вы писали:
AVK>>>Потому что JIT выполняет верификацию кода перед компиляцией.
V>>Исключение вылетает во уже во время работы.
AVK>Так и JIT работает при первом вызове, во время работы.
А почему флаг SecurityPermissionFlag.SkipVerification не помогает?