Avatar billede sph1nx Nybegynder
22. marts 2007 - 11:20 Der er 6 kommentarer og
1 løsning

Returner Arraylist i en Webservice

jeg har en webservice der henter filnavnene og dennes størrelse i en  directory på serveren

DirectoryInfo di = new DirectoryInfo("D:/hej");
FileInfo[] fi = di.GetFiles();
ArrayList al = new ArraList();
foreach(FileInfo fil in fi)
{
  al.add(fil);
}

men hvordan for jeg webservice metoden til at returnere hvad der i ArrayListen?
Avatar billede arne_v Ekspert
22. marts 2007 - 14:29 #1
jeg ville transformere den ArrayList til et normalt array af en klasse med
2 properties (filename og size)

paa den maade vil din web service kunne bruges af andet end .NET programmer
Avatar billede sph1nx Nybegynder
22. marts 2007 - 18:24 #2
det tror jeg lige du bliver nødt til at forklare, gerne med lidt kode, HVIS du gider!
Avatar billede dr_chaos Nybegynder
23. marts 2007 - 08:13 #3
Du kan gøre sådan her:

[WebMethod]
public Arraylist getDirInfo()
{
DirectoryInfo di = new DirectoryInfo("D:/hej");
FileInfo[] fi = di.GetFiles();
ArrayList al = new ArraList();
foreach(FileInfo fil in fi)
{
  al.add(fil);
}
return al;
}
Men jeg vil også anbefale dig at gå den vej som arne siger:

public Class DirInfo
{
public DirInfo()
{
}
private string _fileName;
private int _size;
puplic string FileName()
{
get{return _fileName;}
set{_fileName=value;}
}
public int Size{
get{return _size;}
set{_size=value;}
}
}
Avatar billede dr_chaos Nybegynder
23. marts 2007 - 08:17 #4
Din metode ser nogenlunde sådan her ud:
[WebMethod]
public DirInfo[] getDirInfo()
{
DirectoryInfo di = new DirectoryInfo("D:/hej");
FileInfo[] fi = di.GetFiles();
DirInfo[] di = new DirInfo[fi.Length];
for(int i=0;i<fi.Length;i++)
{

di[i].FileName =fi[i].FileName;
di[i].Size=fi[i].Size;
}
return di;
}
Avatar billede sph1nx Nybegynder
23. marts 2007 - 08:38 #5
arhhh, så gav det lidt mening..
bare smid et svar.
Avatar billede sph1nx Nybegynder
23. marts 2007 - 11:14 #6
[WebMethod]
public DirInfo[] GetDirectory()
{
DirectoryInfo di = new DirectoryInfo("d:/hej");
FileInfo[] fi = di.GetFiles();
DirInfo[] dirinfo = new DirInfo[fi.Length];
for (int i = 0; i < fi.Length; i++)
{
DirInfo dir = new DirInfo(fi[i].Name, fi[i].Length / 1048576);
dirinfo[i] = dir;
}
return dirinfo;
}

og så bare med samme DirInfo klasse som dr.chaos skriver højere oppe.

men dr.chaos, smid et svar.
Avatar billede dr_chaos Nybegynder
23. marts 2007 - 13:08 #7
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester