cette opération n'est pas prise en charge dans le client test wcf, car il utilise le système de types.object[]
salut lors de l'exécution de mon service wcf il me donne l'erreur "cette opération n'est pas prise en charge dans le client test wcf, car il utilise le système de types.object[]"
je m en essayant de récupérer la liste des processus en cours d'exécution.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
class Windows_processes_Service:IWindows_processes_Service
{
ArrayList RunningProcesses_Name = new ArrayList();
public ArrayList GetRunningProcesses()
{
Process[] processlist = Process.GetProcesses();
foreach (Process nme_processes in processlist)
{
RunningProcesses_Name.Add(nme_processes.ProcessName.ToString());
}
return RunningProcesses_Name;
}
}
OriginalL'auteur Enigma34 | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes en train d'ajouter des chaînes de caractères (
ProcessName.ToString()
- siToString()
n'est pas nécessaire queProcessName
est déjà unstring
) à votre service, vous devez définir votre méthode pour renvoyer uneList<string>
au lieu deArrayList
.Cela peut être simplifiée:
OriginalL'auteur Reed Copsey
Le problème est que
ArrayList
peut être une liste de rien (doncobject[]
dans l'erreur), et le client de test ne peut pas gérer. Alors qu'il est parfaitement légal de la WCF pour retourner un tableau d'objets arbitraires, vous devriez envisager un retour du type réel que le client est intéressé - dans ce cas, un tableau deString
devrait le faire.Aussi, pour ce qu'il vaut, sur les modernes (>1.1) les versions de .NET,
ArrayList
est généralement pas utilisée. Le génériqueList<T>
est généralement plus approprié.OriginalL'auteur Chris Shain