Bonjour,
Je rencontre un problème pour récupérer le résultat d'une opération effectuée par un Domain Service custom.
L'application qui pose problème tourne avec Silverlight 4 et MVVM Light. J'ai une partie serveur qui contient mon Model ainsi que les DomainServices. Dans la partie client, j'ai mes ViewModels ainsi que mes Views.
Lorsque je veux implémenter mon propre Domain Service (NavService), ça devient compliqué.
Voici le code du NavService:
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 [EnableClientAccess()] public class NavService : DomainService { public NavigationNode TestMethod(string input) { NavigationNode result = new NavigationNode(); result.Content = input; result.Title = input; return result; } } [EnableClientAccess()] public class NavigationNode { public string Title { get; set; } public string Content { get; set; } }
Dans mon ViewModel, j'ai le code suivant :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public MyViewModel() { NavContext context = new NavContext(); var result = context.TestMethod("input"); result.Completed += new EventHandler(result_Completed); } void result_Completed(object sender, EventArgs e) { // Ici je voudrais récupérer l'objet NavigationNode contenu dans le paramètre sender... }
Le problème, c'est que je n'arrive pas à récupérer mon objet NavigationNode. Lorsque je debug, je vois que le type du paramètre "sender" de la méthode "result_Completed()" est :
System.ServiceModel.DomainServices.Client.InvokeOperation`1[TemplateMVVM.Server.Service.NavigationNode]
Je ne vois pas comment caster le paramètre "sender", étant donné que c'est un type anonyme... Je n'ai accès qu'aux méthodes "Equals()", "GetHashCode()", "GetType()" et "ToString()"...
Avez-vous une idée sur la façon de procéder ?
Merci par avance !
Partager