bitcoin core – Generate public addresses (NBitcoin)

I’m trying to generate a public address and for that, I have the code:

            var key = new Key();
            var wif = key.GetWif(Network.Main);

            Console.WriteLine($"WIF: {wif}");

            var secret = new BitcoinSecret(key, Network.Main);
            Console.WriteLine($"Private Key: {secret.ToWif()}");
            Console.WriteLine($"Public Address (Legacy): {secret.GetAddress(ScriptPubKeyType.Legacy)}");
            Console.WriteLine($"Public Address (Segwit): {secret.GetAddress(ScriptPubKeyType.Segwit)}");
            Console.WriteLine($"Public Address (SegwitP2SH): {secret.GetAddress(ScriptPubKeyType.SegwitP2SH)}");

When I pick the WIF and import it to Blockchain.com (for example), I only get the Legacy public address. Can the same private key sign Segwit and SegwitP2SH transactions?
How can I import a private key and get the Segwit and SegwitP2SH public addresses?

My knowledge about how this works is limited and I’m trying to learn…

Thanks in advance
Paulo Aboim Pinto