Implementation of Strategy Pattern (photo gallery example)
I would use dependency injection. Something like

serviceCollection
   .AddTransient&lt;IShareStrategy, ShareOnFacebook&gt;()
   .AddTransient&lt;IShareStrategy, ShareOnTwitter&gt;()
   .AddTransient&lt;IShareStrategyProvider, ShareStrategyProvider&gt;();

public class ShareStrategyProvider : IShareStrategyProvider
{
   private readonly IEnumerable&lt;IShareStrategy&gt; _strategies;
   public ShareStrategyProvider(IEnumerable&lt;IShareStrategy&gt; strategies) 
   {
      _strategies = strategies;
   }

   public GetStrategy(ShareStrategy sharingStrategy);
   {
      return _strategies.Single(s =&gt; s.SharingStrategy == sharingStrategy);
   }
}


edit: Read up on open/closed principle, its related