У меня есть 4 проекта:
A - проект .NET Core 2.2 - ссылка на B и D (ничего не знает о C)
B - .NET 4.7.2 Библиотека классов - ссылкав C и D
C - библиотека классов .NET 4.7.2 - ссылка D и драйвер MongoDB C # (версия 2.7.30), установленный с NuGet.
D - .NET 4.7.2 Библиотека классов - просто контейнер для классов DTO
Все проекты создаются и выполняются.
===
B - хранилище общих данных,
C - это контекст базы данных, в котором используется драйвер MongoDB C #.
Оба проекта B и C работают без ошибок, когда я использую их в «нормальном» .NET 4.7.2,также 4.5.2 проектов.
===
Ошибка:
Когда я звоню из .NET Core проекта A в B, который заканчивается на C, яполучить ошибку в этот момент:
private IMongoCollection<T> _Collection;
public IMongoCollection<T> Collection
{
get
{
if (_Collection == null)
{
//This is still ok!
_Collection = _DataBase.GetCollection<T>("MyTableName");
}
return _Collection;
}
}
public IEnumerable<T> All
{
get
{
try
{
//Collection is NOT Null and was loaded from the DB
return Collection.Find(new BsonDocument()).ToList();
}
catch (Exception ex)
{
//THE EXCEPTION APPEARS HERE
}
return null;
}
}
Сведения об исключении:
{System.TypeLoadException: не удалось загрузить тип 'System.Runtime.Remoting.Messaging.CallContext' from Assembly 'mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 '.в MongoDB.Driver.Core.Events.EventContext.AsyncLocal 1.get_Value()
at MongoDB.Driver.Core.Events.EventContext.BeginOperation(Nullable
1 operationId) в MongoDB.Driver.Core.Operations.FindCommandOperation 1.Execute(IReadBinding binding, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Operations.FindOperation
1.Execute (связывание IReadBinding, CancellationToken cancellationToken) в MongoDB.Dripera.ExactionTResult] (привязка IReadBinding, IReadOperation 1 operation, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl
1.ExecuteReadOperation [TResult] (сеанс IClientSessionHandle, IReadOperation 1 operation, ReadPreference readPreference, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl
1.ExecuteReadOperation [TResult] (сеанс IClientSessionHandle, IReadOperation 1 operation, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl
1.FindSynition ICessionShief [TPO1037 * 2 варианта, CancellationToken CancellationToken) в MongoDB.Driver.MongoCollectionImpl 1.<>c__DisplayClass41_0
1.b__0 (сеанс IClientSessionHandle) в MongoDB.Driver.MongoCollectionImpl 1.UsingImplicitSession[TResult](Func
2 функции, CancellationToken CancellationToken * переход на 1 * в 10 моноблоков., FindOptions 2 options, CancellationToken cancellationToken)
at MongoDB.Driver.FindFluent
2.ToCursor (CancellationToken cancellationToken) в MongoDB.Driver.IAsyncCursorSourceExtensions.ToList [TDocument] (IAsyncCursorSource`1 источник, CancellationToken можетcellationToken) ...}
(извините за полное исключение, но я думал, что это поможет)
Мой вопрос:
Что я могусделать, чтобы решить эту проблему?
Как я уже говорил выше - похоже, это проблема .NET Core, так как проекты работают без ошибок в других проектах.