Не удается определить тип исключения из сабмодуля git
При передаче исключений через RabbitMQ, исключения форматируются в такой формат:
public class RabbitMqExceptionInfo
{
public required string TypeOf { get; set; }
public required string? Message { get; set; }
}
TypeOf форматируется как ex.GetType().FullName;
При получении объекта RabbitMqExceptionInfo пытаюсь создать экземпляр исключения с помощью Activator.CreateInstance, но перед этим пытаюсь получить конкретный тип исключения, но на этом моменте Type.GetType() возвращает null.
public class RabbitMqResult
{
public virtual RabbitMqExceptionInfo? RabbitMqException { get; set; }
public void ThrowsIfError()
{
if (RabbitMqException is not null)
{
Console.WriteLine($"Тип исключения полученного из микросервиса является {RabbitMqException.TypeOf}");
var exceptionType = Type.GetType(RabbitMqException.TypeOf);
var exception = (Exception)Activator.CreateInstance(exceptionType!, RabbitMqException.Message)!;
throw exception;
}
}
}
И дело тут в том что какие-то базовые исключения создаются нормально, но если передается исключения из моего сабмодуля, получить его тип не получается.
Сразу подумал что сборка из которой берутся исключения не успевают подгружаться, но нет, она к этому моменту была подгружена.
Вот небольшой отрывок логов:
2025-05-03 00:58:39 Тип исключения полученного из микросервиса является Infrastructure.Exceptions.EntityException
2025-05-03 00:58:39 Загружена сборка Infrastructure, Version=8.0.0.0, Culture=neutral, PublicKeyToken=null
Ответы (1 шт):
Проблема решилась форматированием TypeOf как ex.GetType().AssemblyQualifiedName