Attributs de prise en charge de site web

Le projet de site web Visual Studio peut être étendu pour prendre en charge les langages de programmation web. La langue doit s’inscrire auprès de Visual Studio afin que les modèles de projet puissent apparaître dans la boîte de dialogue Nouveau site web lorsque la langue est sélectionnée.

L’exemple IronPython Studio inclut la prise en charge du site web. L’exemple contient les classes d’attribut suivantes pour inscrire IronPython en tant que langage codé pour les nouveaux projets Web.

WebSiteProjectAttribute

Cet attribut est placé sur le projet de langue. Il ajoute le langage à la liste des langages de programmation web dans la liste des langues dans la boîte de dialogue Nouveau site web. Par exemple, le code suivant ajoute IronPython à la liste :

[WebSiteProject("IronPython", "Iron Python")]
public class PythonProjectPackage : ProjectPackage

Cet attribut définit également le chemin d’accès des modèles pour qu’il pointe vers le dossier modèles. Pour plus d’informations sur l’emplacement du dossier modèles, consultez Modèles de support de site web.

WebSiteProjectRelatedFilesAttribute

Cet attribut est placé sur le projet de langue. Il permet au projet de site web d’imbriquer un type de fichier (associé) sous un autre type de fichier (principal) dans le Explorateur de solutions.

Par exemple, le code suivant spécifie qu’un fichier codebehind IronPython est lié à un fichier .aspx. Lorsqu’une nouvelle page web .aspx est créée dans une solution de site Web IronPython, un nouveau fichier source .py est généré et apparaît en tant que nœud enfant de la page .aspx.

[WebSiteProjectRelatedFiles("aspx", "py")]
public class PythonProjectPackage : ProjectPackage

ProvideIntellisenseProviderAttribute

Cet attribut est placé sur le package de projet de langage. Il sélectionne le fournisseur IntelliSense pour la langue.

Par exemple, le code suivant spécifie qu’une instance de PythonIntellisenseProvider, qui implémente IVsIntellisenseProject, doit être créée à la demande pour fournir des services de langage.

[ProvideIntellisenseProvider(typeof(PythonIntellisenseProvider), "IronPythonCodeProvider", "Iron Python", ".py", "IronPython;Python", "IronPython")]
public class PythonPackage : Package, IOleComponent

L’implémentation IVsIntellisenseProject gère les références et appelle le compilateur de langage lorsqu’une page Web avec du code est demandée, mais n’est pas mise en cache.

Voir aussi