Inheritance security rules violated by type
От: SHEMA  
Дата: 05.01.11 16:51
Оценка:
Добрый вечер.

Перебираюсь на .NET4.
Использую BLTookit + BLTgen.

Кучу времени убил, не могу решить проблему:
при старте приложения BLToolkit.TypeBuilder.TypeFactory.CreateInstance[T]() кидает вот такое исключение:
System.TypeLoadException
            Message=Inheritance security rules violated by type: 'DAO.BLToolkitExtension.DomainAccessor'. Derived types must either match the security accessibility of the base type or be less accessible.
            Source=mscorlib
            TypeName=DAO.BLToolkitExtension.DomainAccessor
            StackTrace:
                 at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
                 at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
                 at System.Reflection.Assembly.GetType(String name)
                 at BLToolkit.TypeBuilder.TypeFactory.GetType(Object hashKey, Type sourceType, ITypeBuilder typeBuilder) in


DomainAccessor выглядит так:
    public abstract class DomainAccessor : BLToolkit.DataAccess.DataAccessor
    {
    }


Google выдает 2 совета:
1) Добавить
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]


Не помогает — добавлял в AssemblyInfo.cs BlTookit-а и в библиотеку, его использующую.

2) Добавить
<trust level="Full" legacyCasModel="true"/>

в web.config (библиотека используется в web-приложении). Тоже безрезультатно.

На форуме уже был такой request http://www.rsdn.ru/forum/prj.rfd/3907951.1.aspx, но без ответа.

Please help
Re: Inheritance security rules violated by type
От: SHEMA  
Дата: 05.01.11 19:39
Оценка:
Уточню, что исходники библиотеки и тулзы последние, из SVN.
Re[2]: Inheritance security rules violated by type
От: SHEMA  
Дата: 06.01.11 08:54
Оценка:
Вообщем кто столкнется с такой проблемой, решение такое:

ищем и удаляем все 'AllowPartiallyTrustedCallers' аттрибуты:

AssemblyInfo.cs:
#if !SILVERLIGHT
[assembly: AllowPartiallyTrustedCallers]
#endif


AssemblyBuilderHelper.cs:
#if !SILVERLIGHT

                _assemblyBuilder.SetCustomAttribute(
                    new CustomAttributeBuilder(
                        typeof(AllowPartiallyTrustedCallersAttribute)
                            .GetConstructor(Type.EmptyTypes),
                        new object[0]));

#endif


В детали не углублялся, видимо они использовались для каких-то целей.
Re: Inheritance security rules violated by type
От: IT Россия linq2db.com
Дата: 08.01.11 21:36
Оценка:
Здравствуйте, SHEMA, Вы писали:

Пересобрал BLTgen под 4-й фреймворк. Вроде всё работает и без удаления атрибутов. Правда я до этого боролся с паршиал-трастом в FW 4.0.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.