Bonjour
J’essaie de faire une application avec Silverlight 4, Jounce 1 et en utilisant MEF. Pour l’instant, des pseudo objets métiers me servent à tester l’architecture.
J’ai une vue ServeurBleuView qui ne comprend que quelques zones de textes, avec un databind sur des propriétés dans ServeurViewModel.
ServeurBleuViewModel importe un pseudo objet métier, du type ConnexionServeurBleu.
Code : 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
20 namespace Console.View { [ExportAsView(Global.CONFIG_SERVEURBLEU_VIEW)] [ExportViewToRegion(Global.CONFIG_SERVEURBLEU_VIEW, Global.MAIN_REGION)] public partial class ServeurBleuView : UserControl { public ServeurBleuView() { InitializeComponent(); } [Export] public ViewModelRoute Binding { get { return ViewModelRoute.Create(Global.CONFIG_SERVEURBLEU_VIEWMODEL, Global.CONFIG_SERVEURBLEU_VIEW); } } } }
La classe ConnexionServeurBleu s’exporte et importe le paramètre de son constructeur (injection de dépendance), de type interface IDonneesSb
Code : 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 namespace Console.ViewModel { [ExportAsViewModel(Global.CONFIG_SERVEURBLEU_VIEWMODEL)] public class ServeurBleuViewModel : BaseViewModel { [Import] public ConnexionServeurBleu _maConnSb { get; set; } public ServeurBleuViewModel() { NomServeurBleu = _maConnSb.NomServeurBleu; UrlSb = _maConnSb.UrlServeurBleu; } public string NomServeurBleu { get; set; } } }
La classe DonnesSbXml implémente l’interface IDonneesSb et s’exporte.
Code : 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 namespace Console.ObjetsMetiersFake { [Export] public class ConnexionServeurBleu { private IDonneesSb _connecteurDonnees; [ImportingConstructor] public ConnexionServeurBleu(IDonneesSb connecteurDonnees) { _connecteurDonnees = connecteurDonnees; NomServeurBleu = connecteurDonnees.NomServeurBleu; } public string NomServeurBleu { get; set; } } }
D’après ce que j’ai compris, Jounce se charge de la composition, et normalement, quand il charge ServeurBleuViewModel, il devrait charger ses dépendances (ServeurBleuViewModel--> ConnexionServeurBleu--> DonneesSbXml (en tant que IDonneesSb).
Code : 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
20 namespace Console.ObjetsMetiersFake { [Export(typeof (IDonneesSb))] public class DonneesSbXml : IDonneesSb { public DonneesSbXml() { Initialise(); } public string NomServeurBleu { get; set; } public void Initialise() { NomServeurBleu = "Serveur Bleu n° 1"; } } }
Mais j’ai un message d’erreur quand j’essaie d’afficher la vue ServeurBleuView : http://screencast.com/t/ERuRBGAM4
La solution est peut-être toute simple, mais je ne la trouve pas…
Edit : c'est ici que cela cloche :
[Import]
public ConnexionServeurBleu _maConnSb { get; set; }
l'import ne se fait, il devrait se faire sur :
[Export]
public class ConnexionServeurBleu
Merci pour votre aide !
Richard
Partager