powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Происходит что-то непонятное...
2 сообщений из 2, страница 1 из 1
Происходит что-то непонятное...
    #39293824
ughunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что говорит компилятор:
An unhandled exception of type 'System.TypeLoadException' occurred in mscorlib.dll

Additional information: Нарушение правил безопасности наследования при переопределении члена: "DataAccess.DataContextFactory`1<TContext>.Create()". Доступ безопасности метода переопределения должен соответствовать доступу безопасности метода, который был переопределен.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class DataContextFactory<TContext> : IDisposable, IDataContextFactory<TContext> where TContext : DbContext, IContext
{

// разные штуки :))

public TContext Create()
        {
            return _context ?? (_context = CreateContext());
        }
}

public interface IDataContextFactory<out TContext> : IDataContextFactory, IDbContextFactory<TContext> where TContext : DbContext, IContext
    {
    }

    public interface IDataContextFactory
    {
        ILoggingService Logger { get; set; }

        ISerializer Serializer { get; set; }
    }



вызов:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public static class Program
    {
        public class FakeContext : DbContext, IContext
        {
            public ISerializer Serializer { get; set; }
            public ILoggingService Logger { get; set; }
            public string ConnectionString { get; }
            public void MarkAsModified<TEntity>(TEntity instance) where TEntity : class
            {
                throw new System.NotImplementedException();
            }

            public IDbSet<TEntity> CreateSet<TEntity>() where TEntity : class
            {
                throw new System.NotImplementedException();
            }
        }

        public static void Main(string[] args)
        {
            var factory = new DataContextFactory<FakeContext>(string.Empty, () => new AssemblyHelper().GetDomainAssembly);
        }
    }
...
Рейтинг: 0 / 0
Происходит что-то непонятное...
    #39295862
ughunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сборке (которую получаем () => new AssemblyHelper().GetDomainAssembly) было [assembly: System.Security.AllowPartiallyTrustedCallers]
Применение этого атрибута приводило к Правила безопасности наследования нарушены типом: "Domain.Mapping.SysChangesTrackerMap".
Производные типы должны либо соответствовать по доступности в контексте безопасности базовому типу, либо быть менее доступными.
Ошибка проявлялась в фабрике контекстов при вызове метода GetExportedTypes() на _mappingAssembly (private Assembly _mappingAssembly)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Происходит что-то непонятное...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]