Sí yo estuve investigando un poco y encontré de hacerlo así.. pero entonces
DownloadFileAsync me dice que no puedo pasarle 1 argumento.
Entonces la pregunta que debiste formular es "
¿Cómo pasarle un solo argumento al método Webclient.DownloadFileAsync?", no a la class
URI.
Le debes pasar la url que quieres descargar, seguido del nombre del archivo local que se le debe asignar al archivo descargado. ¿Qué cosa es la que quieres ignorar pasarle?, ¿quieres que el nombre del archivo local se intente extraer de la url automaticamente?.
No entiendo con que intención quieres pasarle 1 solo argumento (resulta ilógico) ni tampoco que tipo de argumento le quieres pasar, intenta ser más preciso detallando lo que pretendes hacer. De todas formas no se puede hacer a menos que heredes dicha class
WebClient para añadirle un overload o suplantar u ocultar el método (en este caso no es un miembro
Overridable), no entiendo con que finalidad quieres hacerlo, pero aquí te muestro un ejemplo básico:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Net;
public sealed class WebclientExtended : WebClient
{
[DebuggerStepThrough()]
public void DownloadFileAsync(Uri address)
{
base.DownloadFileAsync(address, Path.GetFileName(address.LocalPath));
}
}
Modo de empleo:
using (WebClientExtended wce
= new WebClientExtended
()) { wce
.DownloadFileAsync(new Uri
("http://i.imgur.com/EkZXp16.png"));}
Saludos!