Como carregar um arquivo em um servidor FTP por meio do proxy SOCKS?

Carreguei com êxito arquivos no meu servidor FTP usando o código a seguir.

using (WebClient client = new WebClient())
{
    client.Credentials = new NetworkCredential("USER", "PASS");
    client.UploadFile("ftp://adress/" + filename, "STOR", file);
}

No entanto, isso não funciona com uma rede protegida por firewall. A conexão deve passar por um proxy SOCKS para ignorar o firewall.

Como isso pode ser feito? Como posso usar bibliotecas de terceiros comohttp://mentalis.org/ ou qualquer outra biblioteca para estabelecer uma conexão com um proxy SOCKS e fazer upload de arquivos para o servidor?

questionAnswers(1)

yourAnswerToTheQuestion