[C#] Pasar un argumento por Uri

Iniciado por DeMoNcRaZy, 13 Septiembre 2015, 12:09 PM

0 Miembros y 1 Visitante están viendo este tema.

DeMoNcRaZy

Buenas,

Me gustaría saber si hay alguna forma de pasarle a Uri un solo argumento y no dos.

Código (csharp) [Seleccionar]
wc.DownloadFileAsync(new Uri(valor), "index.php");

He probado a dejar las comillas en blanco pero no hace ninguna función, y si las quitos me salta error de sentencia.

¿Puede haber alguna forma de solo pasar un argumento?

Cualquier información adicional lo agradecería.

Saludos.
Esta página web no está disponible - Google Chrome

Eleкtro

#1
Cita de: YuseTist en 13 Septiembre 2015, 12:09 PMMe gustaría saber si hay alguna forma de pasarle a Uri un solo argumento y no dos.

... ¿?

Por favor, utiliza IntelliSense o la documentación online en la MSDN para resolver este tipo de dudas tan simples. Se me hace perezoso responder a esto que puedes resolver sin ningún tipo de ayuda.



Cómo puedes comprobar, el constructor principal acepta 1 argumento ...un String que contenga la url, plus 5 overloads que aceptan múltiples argumentos.

Saludos








DeMoNcRaZy

Sí yo estuve investigando un poco y encontré de hacerlo así.. pero entonces
DownloadFileAsync me dice que no puedo pasarle 1 argumento.



Saludos.
Esta página web no está disponible - Google Chrome

Eleкtro

#3
Cita de: YuseTist en 13 Septiembre 2015, 14:22 PMSí 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:

Código (csharp) [Seleccionar]
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:
Código (csharp) [Seleccionar]
using (WebClientExtended wce = new WebClientExtended()) {
wce.DownloadFileAsync(new Uri("http://i.imgur.com/EkZXp16.png"));
}


Saludos!