/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.Abstractions/Metadata/HostMetadataCache.cs
55 строк
2 KB
Chris Patterson
Added cloud provider telemetry
24 апр 2025, 17:27
24 апр 2025, 17:27
55c9ef3
Код
Авторство
О чём код?
namespace MassTransit.Metadata { using System; using System.IO; using System.Reflection; using System.Runtime.InteropServices; public static class HostMetadataCache { static bool? _isRunningInContainer; static bool? _isRunningInKubernetes; #if !NETFRAMEWORK static bool? _isNetFramework; #endif public static HostInfo Host => Cached.HostInfo; public static HostInfo Empty => Cached.EmptyHostInfo; public static bool IsRunningInContainer => _isRunningInContainer ??= bool.TryParse(Environment.GetEnvironmentVariable("DOTNET_RUNNING_IN_CONTAINER"), out var inDocker) && inDocker; public static bool IsKubernetes => _isRunningInKubernetes ??= Environment.GetEnvironmentVariable("KUBERNETES_SERVICE_HOST") != null || Directory.Exists("/var/run/secrets/kubernetes.io"); #if NETFRAMEWORK public static bool IsNetFramework => true; #else public static bool IsNetFramework => _isNetFramework ??= RuntimeInformation.FrameworkDescription.StartsWith(".NET Framework"); #endif public static string? GetCommitHash() { var assembly = typeof(IBus).Assembly; var attribute = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>(); if (attribute == null) return null; var splitIndex = attribute.InformationalVersion.IndexOf('+'); if (splitIndex > 0) return attribute.InformationalVersion.Substring(splitIndex + 1); return null; } } static class Cached { internal static readonly HostInfo HostInfo = new BusHostInfo(true); internal static readonly HostInfo EmptyHostInfo = new BusHostInfo(); } }