/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/Consumers/Configuration/ConsumerMetadataCache.cs
32 строки
944 B
Chris Patterson
Massive file cleanup
27 мар 2024, 02:43
27 мар 2024, 02:43
2ac69e8
Код
Авторство
О чём код?
namespace MassTransit.Configuration { using System; using System.Linq; public class ConsumerMetadataCache<T> : IConsumerMetadataCache<T> where T : class { readonly IMessageInterfaceType[] _consumerTypes; ConsumerMetadataCache() { _consumerTypes = ConsumerConventionCache.GetConventions<T>() .SelectMany(x => x.GetMessageTypes()) .GroupBy(x => x.MessageType) .Select(x => x.Last()) .ToArray(); } public static IMessageInterfaceType[] ConsumerTypes => Cached.Metadata.Value.ConsumerTypes; IMessageInterfaceType[] IConsumerMetadataCache<T>.ConsumerTypes => _consumerTypes; static class Cached { internal static readonly Lazy<IConsumerMetadataCache<T>> Metadata = new Lazy<IConsumerMetadataCache<T>>(() => new ConsumerMetadataCache<T>()); } } }