Skip to content

Instantly share code, notes, and snippets.

View BenjaminAbt's full-sized avatar

BEN ABT BenjaminAbt

View GitHub Profile
@BenjaminAbt
BenjaminAbt / keybase.md
Created April 21, 2020 11:53
keybase.md

Keybase proof

I hereby claim:

  • I am benjaminabt on github.
  • I am benjaminabt (https://keybase.io/benjaminabt) on keybase.
  • I have a public key ASCApkKXr5BbmOMdy5NbZwHzb_kcd3X_m_X-Nro9gtyCDgo

To claim this, I am signing this object:

@BenjaminAbt
BenjaminAbt / ApplicationInsightsBehavior.cs
Last active January 25, 2023 16:16
Application Insights MediatR Operation Behavior
using System;
using System.Threading;
using System.Threading.Tasks;
using MediatR;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
namespace BenjaminAbt.ApplicationInsights.MediatR
{
@BenjaminAbt
BenjaminAbt / Evolving-ArgumentNullException.cs
Last active September 30, 2021 15:55
Better C# ArgumentNullExceptions
// C# 5
public void MyMethod(string name)
{
if (name == null) throw new ArgumentNullException("name", "name cannot be null.");
}
// C# 6 - nameof() to avoid magic strings
public void MyMethod(string name)
{
if (name == null) throw new ArgumentNullException(nameof(name), $"{nameof(name)} cannot be null.");
@BenjaminAbt
BenjaminAbt / sb-vs-sbpooled.cs
Created October 29, 2021 20:06
.NET 6 - StringBuilder vs. String Builder ObjectPool
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BenchmarkDotNet.Attributes;
using Microsoft.Extensions.ObjectPool;
namespace Benchmarks;
[MemoryDiagnoser]
public class Benchmark
@BenjaminAbt
BenjaminAbt / MicrosoftDefenderBearerTokenClientProvider.cs
Created August 26, 2022 09:44
Microsoft Defender Bearer Token Sample Provider
public class MicrosoftDefenderBearerTokenClientProvider
{
private const string _authority = "https://login.microsoftonline.com";
private const string _audience = "https://api.securitycenter.microsoft.com";
private static string[] s_scopes = new[] { $"{_audience}/.default" };
public async Task<AuthenticationResult> GetToken
(string tenantId, string clientId, string secret)
{