2010-11-03 7 views
1

Je crée un plugin Internet Explorer en utilisant C#. J'ai suivi un tutoriel où le code importe deux classes que je n'ai pas disponible, à savoir:Comment trouver le composant C# qui contient une classe particulière

using System.Windows; 
using SHDocVw; 

Je me rends compte que je dois ajouter les éléments pertinents à mon projet mais je ne suis pas sûr comment trouver les composants qui contiennent les classes. Peut-être qu'il y a une recherche quelque part?

+0

Le site du didacticiel ne possède-t-il pas le code source? –

+0

Il a le code source répertorié, mais ne mentionne pas les références que vous devez ajouter au projet. http://msmvps.com/blogs/vcsjones/archive/2010/05/23/writing-a-managed-internet-explorer-extension-part-1.aspx – opsb

Répondre

2

ces deux exemples sont situés les espaces de noms dans les assemblées qui doivent être référence. Heureusement, l'ajout de ces références sont assez simples:

Pour System.Windows:

  1. Faites un clic droit de votre projet.
  2. Sélectionnez "Ajouter une référence ..."
  3. Sélectionnez l'onglet ".NET" et recherchez l'assemblage System.Windows.
  4. Double-cliquez pour ajouter.

Pour SHDocVw:

  1. Faites un clic droit de votre projet.
  2. Sélectionnez "Ajouter une référence ..."
  3. Sélectionnez l'onglet "Parcourir".
  4. Accédez à C: \ Windows \ System32
  5. Trouver SHDocVw.dll
  6. Double-cliquez pour ajouter.
+0

Merci beaucoup, il est bon d'avoir des instructions explicites lorsque vous êtes nouveau dans un langage/environnement de développement. Un problème que j'ai rencontré est que System.Windows n'existe pas dans l'onglet .NET. J'ai System.Windows.Presentation, ..ndows.Input.Manipulations, ..ndows.Forms.DataVisualization et ..ndows.Forms. J'ai réussi à résoudre cela en créant une application WPF qui semble inclure les assemblages nécessaires hors de la boîte. System.Windows n'est toujours pas répertorié dans les références. – opsb

+0

@opsb - System.Windows peut en fait être un assemblage Silverlight. Ma faute. N'oubliez pas, cependant, que les espaces de noms peuvent s'étendre sur plusieurs assemblys. Ainsi, en créant le projet WPF, il a ajouté d'autres références d'assemblage contenant des classes appartenant à l'espace de noms System.Windows. Il est plus facile de dire quel assemblage a besoin d'être ajouté si vous connaissez la classe dont vous avez besoin plutôt que l'espace de noms que vous recherchez. –

+0

Ouais, je voulais éviter d'utiliser le WPF car je ne veux pas inclure tous les composants nécessaires. Il s'avère que le composant nécessaire est appelé WindowsBase et se trouve également sur l'onglet .NET. – opsb

1

Tout d'abord, le code que vous avez publié n'est pas une classe mais des espaces de noms.

Vous pouvez afficher le composant à ajouter en consultant la documentaion de l'espace de noms. Google après le nom de l'espace de nom et vous serez fidn la réponse sur MSDN.

+0

Ah, je suis en face de java, j'avais hadn Je n'ai pas réalisé que vous pouviez utiliser cette syntaxe pour importer des espaces de noms. – opsb

1

son contrôle Microsoft Web Browser.

Vous devriez avoir sur votre PC avec le nom de

shdocvw32.dll

référence avec votre projet.

Cordialement,

Mazhar Karimi

+0

J'ai trouvé quelques fichiers qui font probablement le même travail. shodocvw.dll, Microsoft.ShDocVw.dll, AxInterop.ShDocVw.dll et Interop.ShDocVw.dll. Comment savoir lequel choisir? Aussi, si je me réfère à une DLL qui est conservée dans une partie aléatoire du système de fichiers, comment puis-je partager le projet avec d'autres développeurs? – opsb

Questions connexes