Partilhar via


Interface VSWebSite

Fornece propriedades e métodos para um projeto de site da Web.

Namespace:  VsWebSite
Assembly:  VsWebSite.Interop (em VsWebSite.Interop.dll)

Sintaxe

'Declaração
<GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")> _
Public Interface VSWebSite
[GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")]
public interface VSWebSite
[GuidAttribute(L"70758CA4-91F8-46AD-80A7-73BC21BAE68B")]
public interface class VSWebSite
[<GuidAttribute("70758CA4-91F8-46AD-80A7-73BC21BAE68B")>]
type VSWebSite =  interface end
public interface VSWebSite

O tipo VSWebSite expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública CodeFolders Obtém uma coleção de pastas que estão configurados como pastas de código no site da Web.
Propriedade pública DTE Obtém uma referência a DTE2 objeto que contém este projeto de site da Web.
Propriedade pública Project Obtém uma referência a este site como um Project objeto.
Propriedade pública References Obtém um AssemblyReferences objeto contendo referências a assemblies e projetos para o site da Web atual.
Propriedade pública TemplatePath Obtém o caminho completo e o nome da pasta que contém modelos para itens do site da Web.
Propriedade pública URL Obtém o URL que foi usado para abrir o site.
Propriedade pública UserTemplatePath Obtém o caminho para a pasta de modelos do usuário para novos itens de projeto.
Propriedade pública VSWebSiteEvents Obtém o VSWebSiteEvents o objeto para o site da Web, que pode ser usado para adicionar manipuladores de eventos.
Propriedade pública WebReferences Obtém um WebReferences objeto contendo referências para os serviços da Web consumidos por um site da Web.
Propriedade pública WebServices Obtém um WebServices objeto que contém uma coleção de serviços da Web que são expostos por este site da Web.

Início

Métodos

  Nome Descrição
Método público AddFromTemplate Cria um novo ProjectItem no site do projeto.
Método público EnsureServerRunning Inicia o aplicativo ASP.NET Development Server, se necessário e retorna a URL do site da Web.
Método público GetUniqueFilename Retorna um nome de arquivo que é exclusivo dentro da pasta especificada, usando a extensão de nome de arquivo e o nome da raiz especificado.
Método público PreCompileWeb Compila o site e grava a saída compilada para a pasta especificada.
Método público Refresh Atualiza a exibição para refletirem as alterações que foram feitas para o site fora do Visual Studio.
Método público WaitUntilReady Bloqueia todas as chamadas de método, até que os processos em segundo plano tenham terminado a execução.

Início

Comentários

Use o VSWebSite interface para manipular um projeto de site da Web a partir de qualquer uma macro ou de um suplemento para Visual Studio.

Além das propriedades e métodos dessa classe, há mais propriedades para projetos de site da Web disponível usando o WebSiteProperties classe.

ObservaçãoObservação

A funcionalidade fornecida por esta classe está disponível nas versões do Visual Studio, começando com Visual Studio de 2005. Ele não está disponível no Visual Web Developer Express Edition.

Exemplos

O exemplo a seguir mostra como usar um suplemento para interagir com um projeto de site da Web de Visual Studio. O suplemento usa manipuladores de eventos para gravar no log de eventos quando uma referência a um assembly, ou uma referência da Web a um serviço Web é adicionada ao projeto. Além disso, ele grava um resumo de cada projeto de site da Web para um arquivo de texto quando a solução é fechada.

Para executar o exemplo, use o Como: criar um Adicionar- para criar um projeto do suplemento e substituir todo o código no arquivo resultante Connect. cs com o código de exemplo. Você também precisará criar uma referência ao assembly VsWebSite.Interop.

[C#]

using System;
using System.IO;
using System.Collections;
using System.Diagnostics;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using VsWebSite;

// The object for implementing an Add-in.
public class Connect : IDTExtensibility2
{
    private DTE2 _applicationObject;
    private AddIn _addInInstance;

    // Implements the constructor for the Add-in object.
    // Created by the Add-In Wizard
    public Connect()
    {
    }

    // Event method created by the Add-In Wizard.
    // Occurs when the Add-In connects with the application.
    public void OnConnection(object application, ext_ConnectMode 
        connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;

        // Attach Solution event handlers
        _applicationObject.DTE.Events.SolutionEvents.Opened 
            += new _dispSolutionEvents_OpenedEventHandler
                (SolutionEvents_Opened);
        _applicationObject.DTE.Events.SolutionEvents.QueryCloseSolution 
            += new _dispSolutionEvents_QueryCloseSolutionEventHandler
                (SolutionEvents_QueryCloseSolution);
    }

    // Custom event method that occurs before a solution is closed.
    private void SolutionEvents_QueryCloseSolution(ref bool fCancel)
    {
        foreach (Project proj in _applicationObject.Solution.Projects)
        {
            // Make sure background compilation is finished
            ((VSWebSite)proj.Object).WaitUntilReady();

            System.Text.StringBuilder strBldr = 
                new System.Text.StringBuilder();

            strBldr.AppendLine("Summary for Web Site: " 
                + ((VSWebSite)proj.Object).URL);
            strBldr.AppendLine("Solution: " 
                + _applicationObject.Solution.FullName);
            strBldr.AppendLine("Web References:");
            foreach (WebReference wref in 
                ((VSWebSite)proj.Object).WebReferences)
                strBldr.AppendLine("    " + wref.Namespace);
            strBldr.AppendLine("Assembly References:");
            foreach (AssemblyReference aref in 
                ((VSWebSite)proj.Object).References)
                strBldr.AppendLine("    " + aref.Name);
            // list the files?

            ((VSWebSite)proj.Object).VSWebSiteEvents.WebReferencesEvents.WebReferenceAdded
                -= WebRefEvents_WebRefAdded;

            string strBody = strBldr.ToString();

            // Save the summary as a text file in the Web site.
            string fName = _applicationObject.FullName;
            fName = fName.Substring(0, fName.Length - 4);
            fName += "." + ((VSWebSite)proj.Object).GetUniqueFilename
                ("/", "ProjectSummary", ".txt");
            if (File.Exists(fName))
                File.Delete(fName);
            StreamWriter sw = File.CreateText(fName);
            sw.Write(strBody);
            sw.Close();
        }
    }

    // Custom event method that occurs when a solution is opened.
    private void SolutionEvents_Opened()
    {
        // When solution is opened, attach event handlers for projects
        foreach (Project proj in _applicationObject.Solution.Projects)
        {   // Only attach event handlers if it is a Web site
            if (proj.Object is VSWebSite)
            {
                ((VSWebSite)proj.Object).VSWebSiteEvents.WebReferencesEvents.WebReferenceAdded +=
                    new _dispWebReferencesEvents_WebReferenceAddedEventHandler
                    (WebRefEvents_WebRefAdded);
                ((VSWebSite)proj.Object).VSWebSiteEvents.AssemblyReferencesEvents.AssemblyReferenceAdded += 
                    new _dispAssemblyReferencesEvents_AssemblyReferenceAddedEventHandler
                    (AssemblyRefsEvents_AssemblyRefAdded);
            }
        }
    }

    // Custom event method that occurs when a Reference is added.
    private void AssemblyRefsEvents_AssemblyRefAdded(AssemblyReference AssemblyRef)
    {
        EventLog appLog = new EventLog();
        appLog.Source = "VSWSTest." + AssemblyRef.ContainingProject.Name;
        appLog.WriteEntry("AssemblyReference added: " + AssemblyRef.Name);
    }
    
    // Custom event method that occurs when a Web Reference is added.
    private void WebRefEvents_WebRefAdded(WebReference webRef)
    {
        EventLog appLog = new EventLog();
        appLog.Source = "VSWSTest." + webRef.ContainingProject.Name;
        appLog.WriteEntry("WebReference added: " + webRef.Namespace);
    }

    #region Required but unused event handlers

    /// <summary>Implements the OnDisconnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being unloaded.</summary>
    /// <param term='disconnectMode'>Describes how the Add-in is being unloaded.</param>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
    {
    }

    /// <summary>Implements the OnAddInsUpdate method of the IDTExtensibility2 interface. Receives notification when the collection of Add-ins has changed.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnAddInsUpdate(ref Array custom)
    {
    }

    /// <summary>Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnStartupComplete(ref Array custom)
    {
    }

    /// <summary>Implements the OnBeginShutdown method of the IDTExtensibility2 interface. Receives notification that the host application is being unloaded.</summary>
    /// <param term='custom'>Array of parameters that are host application specific.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnBeginShutdown(ref Array custom)
    {
    }

    #endregion
}

Consulte também

Referência

Namespace VsWebSite

EnvDTE

WebSiteProperties

Outros recursos

Automação e referência a extensibilidade

Assemblies de automação de referência e o objeto DTE2

Macros Visual Studio

Criando Adicionar-