Как использовать UnsafeAccessor для проверки наличия Autofac.Core.Lifetime.LifetimeScope в .NET 8?C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать UnsafeAccessor для проверки наличия Autofac.Core.Lifetime.LifetimeScope в .NET 8?

Сообщение Anonymous »

Сейчас я работаю над проектом, использующим .NET 8 и Autofac для внедрения зависимостей. Я столкнулся со сценарием, в котором мне нужно проверить, удален ли уже экземпляр Autofac.Core.Lifetime.LifetimeScope, чтобы предотвратить доступ к удаленным объектам, что приводит к исключению ObjectDisposeException.
Я пришел через UnsafeAccessor как потенциальное решение для безопасного доступа к частным или внутренним членам без отражения, но я не уверен, как применить его в этом контексте для проверки свойства IsDispose LifetimeScope.
Я попробуйте это

Код: Выделить всё

[UnsafeAccessor(UnsafeAccessorKind.Method, Name = "get_IsDisposed")]
private static extern ref bool GetIsDisposed(global::Autofac.Core.Lifetime.LifetimeScope @this);
но получаю исключение

Код: Выделить всё

System.MissingMethodException: Method not found: 'Autofac.Core.Lifetime.LifetimeScope.get_IsDisposed'.
Я делаю простую демонстрацию
https://dotnetfiddle.net/79xX5J
Я хочу получите свойство IsDispose объекта Autofac.Core.Lifetime.LifetimeScope, чтобы проверить, удален ли уже Autofac.Core.Lifetime.LifetimeScope.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ope-isdisp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»