2009-05-06 13 views
2

Je travaille actuellement sur un petit framework de localisation pour WPF (ne pense même pas à me pointer sur locBAML ...) et me suis demandé s'il était possible de trouver l'assembly contenant d'un DependencyObject spécifié. Par exemple: J'ai une définition de fenêtre normale en XAML dans le fichier Window1.xaml. La fenêtre contient un StackPanel et à l'intérieur se trouve un TextBlock.Est-il possible de trouver l'assembly et le fichier contenant un DependencyObject?

Est-il possible de trouver quel assembly contient le fichier Window1.xaml quand il n'y a qu'une référence au TextBlock?

Est-il également possible de trouver le nom de fichier du fichier xaml ("Window1.xaml" dans ce cas)?

Merci à l'avance et meilleures salutations, 3Fox

Répondre

2

Je pense que quelque chose comme ça fonctionnerait.

Window window = Window.GetWindow(YourTextBox); 
Assembly assembly = Assembly.GetAssembly(window.GetType()); 
+0

Je suis actuellement au travail et ne peut donc pas vérifier immédiatement mais ne pensez-vous pas l'assemblée que je sortirais de ce serait l'assemblage contenant la classe de fenêtre (en plus d'autres classes WPF) plutôt alors mon assemblée? – chrischu

+0

Puisque la 'fenêtre' est un objet hérité de la classe Window, GetType() retournera ce type hérité (par exemple MyWindow). Donc, avec cela, vous aurez probablement l'assemblage. – arconaut

+0

Vous avez raison, cela fonctionne pour obtenir l'assemblage mais je n'ai pas trouvé un moyen de savoir avec codefile/class que DO est. – chrischu