Skip to content

Commit b9ee824

Browse files
authored
Enable AOT compatibility for Yarp.Telemetry.Consumption (#2146)
* Enable AOT compatibility for Yarp.Telemetry.Consumption Also fix a simple warning in Yarp.Kubernetes.Controller. The rest of the warnings in this project will be addressed in #2145. * Fix TryAddSingleton warning that isn't caught by the Roslyn analyzer. See https://github.com/dotnet/runtime/issues/86720 for why the warning isn't being raised.
1 parent 7ef8164 commit b9ee824

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/Kubernetes.Controller/Management/KubernetesReverseProxyServiceCollectionExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using System;
5+
using System.Diagnostics.CodeAnalysis;
56
using k8s;
67
using k8s.Models;
78
using Microsoft.Extensions.Configuration;
@@ -122,7 +123,7 @@ public static IServiceCollection RegisterResourceInformer<TResource, TService>(t
122123
/// <param name="services">The services.</param>
123124
/// <param name="fieldSelector">A field selector to constrain the resources the informer retrieves.</param>
124125
/// <returns>IServiceCollection.</returns>
125-
public static IServiceCollection RegisterResourceInformer<TResource, TService>(this IServiceCollection services, string fieldSelector)
126+
public static IServiceCollection RegisterResourceInformer<TResource, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TService>(this IServiceCollection services, string fieldSelector)
126127
where TResource : class, IKubernetesObject<V1ObjectMeta>, new()
127128
where TService : IResourceInformer<TResource>
128129
{

src/TelemetryConsumption/TelemetryConsumptionExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using System;
5+
using System.Diagnostics.CodeAnalysis;
56
using Microsoft.Extensions.DependencyInjection.Extensions;
67
using Yarp.Telemetry.Consumption;
78

@@ -86,7 +87,7 @@ public static IServiceCollection AddTelemetryConsumer(this IServiceCollection se
8687
/// <summary>
8788
/// Registers a <typeparamref name="TConsumer"/> singleton for every I*TelemetryConsumer interface it implements.
8889
/// </summary>
89-
public static IServiceCollection AddTelemetryConsumer<TConsumer>(this IServiceCollection services)
90+
public static IServiceCollection AddTelemetryConsumer<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TConsumer>(this IServiceCollection services)
9091
where TConsumer : class
9192
{
9293
var implementsAny = false;
@@ -201,7 +202,7 @@ public static IServiceCollection AddMetricsConsumer(this IServiceCollection serv
201202
/// <summary>
202203
/// Registers a consumer singleton for every IMetricsConsumer interface it implements.
203204
/// </summary>
204-
public static IServiceCollection AddMetricsConsumer<TConsumer>(this IServiceCollection services)
205+
public static IServiceCollection AddMetricsConsumer<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TConsumer>(this IServiceCollection services)
205206
where TConsumer : class
206207
{
207208
var implementsAny = false;

src/TelemetryConsumption/Yarp.Telemetry.Consumption.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<OutputType>Library</OutputType>
77
<RootNamespace>Yarp.Telemetry.Consumption</RootNamespace>
88
<Nullable>enable</Nullable>
9+
<IsAotCompatible>true</IsAotCompatible>
910
<PackageReadmeFile>README.md</PackageReadmeFile>
1011
</PropertyGroup>
1112

0 commit comments

Comments
 (0)