public ICryptoProvider GetCryptoProvider(EncryptionSettings settings) { switch (settings.Algorithm.ToUpperInvariant()) { case "DEFAULT": ICryptoProvider cryptoProvider = (ICryptoProvider) new DefaultCryptoProvider(); cryptoProvider?.Initialize(settings); return(cryptoProvider); default: throw new NotSupportedException(); } }