Executando verificação de segurança...
1

Bom... uma forma que pode ajudar na sua duvida? É criar uma classe com dois metodos: um que seja no estilo chave e valor. Eu utilizo um Dictionary onde a chave vai ser um string ou qualquer outro tipo e o value vai ser a interface ITransportationStrategy e o outro metodo para obter o valor.

Ex:

public static class SearchTransport
{
    private static IDictionary<string, ITransportationStrategy> strategy = new 
    Dictionary<string, ITransportationStrategy> 
    {
         {"SEDEX", new Sedex()},
         {"JADLOG", new JadLog()},
         {"DHL", new DHL()}
    };

    public static ITransportationStrategy Get(string transport) =>
        strategy[transport];
}

Então você pode receber qual tipo de frete voce quer dinamicamente...

TransportationContext transportationContext = new(SearchTransport.Get("SEDEX"));
Carregando publicação patrocinada...