2010-05-26 3 views
1

J'ai méthode:Retour plusieurs valeurs avec flux

var listOfFiles=service .GetFiles(pathsOfFiles.ToArray(); 

service est mon service WCF avec le streaming, et je veux avoir méthode sur ce service comme:

public List<Stream, file> GetFiles(string[] paths) 
{ 
List<Stream, file> files =new List<Stream, file> 
foreach(string path in pathsOfFiles) 
{ 
files.add(path, new FileStream(filename, FileMode.Open)) 
} 
return files 
} 

Maintenant, je n'ai que la méthode (qui est ci-dessous) qui fonctionne bien, mais je dois le convertir en fonction que je décibe sur le dessus.

public Stream GetData(string filename) 
     { 
      FileStream fs = new FileStream(filename, FileMode.Open); 
      return fs; 
     } 

Je dois obtenir des chemins de service pour savoir quel est le nom du fichier

Répondre

1

Vous pouvez utiliser quelque chose comme

public Dictionary<string, Stream> GetData(string[] paths) 
{ 
    Dictionary<string, Stream> data = new Dictionary<string, Stream>(); 
    foreach (string path in paths) 
    { 
     data[path] = new FileStream(path, FileMode.Open);  
    } 

    return data; 
} 
+0

merci pour la réponse. Malheureusement cela ne fonctionne pas avec stream, mais j'ajoute ce morceau de code dans un autre endroit et c'est sympa :) – user278618

+0

Je suppose que ce que tu voulais dire c'est que WCF ne peut pas retourner Dictionary . ce que vous avez besoin est le transfert de flux - lisez ceci http://msdn.microsoft.com/fr-fr/library/ms731913.aspx –