TelemetryEventArguments
The arguments of the telemetry event.
using Polly.Utils;
using System.Runtime.CompilerServices;
namespace Polly.Telemetry
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class TelemetryEventArguments
{
private static readonly ObjectPool<TelemetryEventArguments> Pool = new ObjectPool<TelemetryEventArguments>(() => new TelemetryEventArguments(), delegate(TelemetryEventArguments args) {
args.Source = null;
args.Event = default(ResilienceEvent);
args.Context = null;
args.Outcome = null;
args.Arguments = null;
});
public ResilienceTelemetrySource Source { get; set; }
public ResilienceEvent Event { get; set; }
public ResilienceContext Context { get; set; }
[System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
[field: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
public Outcome<object>? Outcome {
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
get;
[param: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
private set;
}
public object Arguments { get; set; }
private TelemetryEventArguments()
{
}
internal static TelemetryEventArguments Get(ResilienceTelemetrySource source, ResilienceEvent resilienceEvent, ResilienceContext context, [System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})] Outcome<object>? outcome, object arguments)
{
TelemetryEventArguments telemetryEventArguments = Pool.Get();
telemetryEventArguments.Source = source;
telemetryEventArguments.Event = resilienceEvent;
telemetryEventArguments.Context = context;
telemetryEventArguments.Outcome = outcome;
telemetryEventArguments.Arguments = arguments;
return telemetryEventArguments;
}
internal static void Return(TelemetryEventArguments args)
{
Pool.Return(args);
}
}
}