Compartilhar via


Atributos de suporte a site

O projeto de site do Visual Studio pode ser estendido para fornecer suporte para linguagens de programação da Web. O idioma deve se registrar com o Visual Studio para que os modelos de projeto possam aparecer na caixa de diálogo Novo Site quando o idioma for selecionado.

O exemplo do IronPython Studio inclui suporte a sites. O exemplo contém as seguintes classes de atributo para registrar IronPython como uma linguagem codebehind para novos projetos da Web.

WebSiteProjectAttribute

Esse atributo é colocado no projeto de linguagem. Ele adiciona o idioma à lista de linguagens de programação da Web na lista Idioma na caixa de diálogo Novo Site. Por exemplo, o código a seguir adiciona IronPython à lista:

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

Esse atributo também define o caminho dos modelos para apontar para a pasta de modelos. Para obter mais informações sobre o local da pasta de modelos, consulte Modelos de suporte de site.

WebSiteProjectRelatedFilesAttribute

Esse atributo é colocado no projeto de linguagem. Ele permite que o projeto de Site aninhar um tipo de arquivo (relacionado) em outro tipo de arquivo (principal) no Gerenciador de Soluções.

Por exemplo, o código a seguir especifica que um arquivo codebehind IronPython está relacionado a um arquivo .aspx. Quando uma nova página da Web .aspx é criada em uma solução de site da Web IronPython, um novo arquivo de origem .py é gerado e aparece como um nó filho da página .aspx.

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

ProvideIntellisenseProviderAttribute

Esse atributo é colocado no pacote do projeto de idioma. Ele seleciona o provedor IntelliSense para o idioma.

Por exemplo, o código a seguir especifica que uma instância de PythonIntellisenseProvider, que implementa IVsIntellisenseProject, deve ser criada sob demanda para fornecer serviços de linguagem.

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

A implementação IVsIntellisenseProject manipula referências e chama o compilador de linguagem quando uma página da Web com código é solicitada, mas não é armazenada em cache.

Confira também