Partager via


VSWebSite, interface

Fournit des propriétés et des méthodes pour un projet de site Web.

Espace de noms :  VsWebSite
Assembly :  VsWebSite.Interop (dans VsWebSite.Interop.dll)

Syntaxe

'Déclaration
<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

Le type VSWebSite expose les membres suivants.

Propriétés

  Nom Description
Propriété publique CodeFolders Obtient une collection de dossiers qui sont configurés comme des dossiers de code dans le site Web.
Propriété publique DTE Obtient une référence à l'objet DTE2 qui contient ce projet de site Web.
Propriété publique Project Obtient une référence à ce site Web en tant qu'objet Project.
Propriété publique References Obtient un objet AssemblyReferences contenant des références aux assemblys et projets du site Web actuel.
Propriété publique TemplatePath Obtient le chemin d'accès complet et le nom du dossier qui contient les modèles des éléments de site Web.
Propriété publique URL Obtient l'URL qui a été utilisée pour ouvrir le site Web.
Propriété publique UserTemplatePath Obtient le chemin d'accès au dossier de modèles utilisateur pour les nouveaux éléments de projet.
Propriété publique VSWebSiteEvents Obtient l'objet VSWebSiteEvents pour le site Web, qui peut être utilisé pour ajouter des gestionnaires d'événements.
Propriété publique WebReferences Obtient un objet WebReferences contenant des références aux services Web consommés par le site Web.
Propriété publique WebServices Obtient un objet WebServices qui contient une collection de services Web exposés par ce site Web.

Début

Méthodes

  Nom Description
Méthode publique AddFromTemplate Crée un nouveau ProjectItem dans le projet de site Web.
Méthode publique EnsureServerRunning Démarre le serveur de développement ASP.NET, si nécessaire, et retourne l'URL du site Web.
Méthode publique GetUniqueFilename Retourne un nom de fichier qui est unique dans le dossier spécifié, à l'aide du nom de la racine spécifié et de l'extension du nom de fichier.
Méthode publique PreCompileWeb Compile le site Web et écrit les résultats de compilation dans le dossier spécifié.
Méthode publique Refresh Actualise l'affichage pour rendre compte des modifications qui ont été apportées au site Web en dehors de Visual Studio.
Méthode publique WaitUntilReady Bloque tous les appels de méthode jusqu'à la fin de l'exécution des processus en arrière-plan.

Début

Notes

Utilisez l'interface VSWebSite pour manipuler un projet de site Web à partir d'une macro ou d'un complément vers Visual Studio.

Outre les propriétés et méthodes de cette classe, d'autres propriétés pour les projets de site Web sont disponibles en utilisant la classe WebSiteProperties.

Notes

Les fonctionnalités fournies par cette classe sont disponibles dans les versions de Visual Studio à partir de Visual Studio 2005.Cette fonctionnalité n'est pas disponible dans Visual Web Developer Express.

Exemples

L'exemple suivant indique comment utiliser un complément pour interagir avec un projet de site Web Visual Studio. Le complément utilise des gestionnaires d'événements pour écrire dans le journal des événements lorsqu'une référence à un assembly ou une référence Web à un service Web est ajoutée au projet. De plus, il écrit un résumé de chaque projet de site Web dans un fichier texte lorsque la solution est fermée.

Pour exécuter l'exemple, utilisez l'Comment : créer un complément pour créer un projet de complément et remplacez tout le code du fichier Connect.cs obtenu par l'exemple de code. Vous devrez également créer une référence à l'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
}

Voir aussi

Référence

VsWebSite, espace de noms

EnvDTE

WebSiteProperties

Autres ressources

Guide de référence de l'extensibilité et de l'automation

Référencement des assemblys d'automation et de l'objet DTE2

Visual Studio Macros

Création de compléments et d'Assistants