VSWebSite interface

 

Date de publication : novembre 2016

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

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

Syntaxe

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

Propriétés

Nom Description
System_CAPS_pubproperty CodeFolders

Obtient une collection de dossiers qui sont configurés en tant que dossiers de code dans le site Web.

System_CAPS_pubproperty DTE

Obtient une référence à la DTE2 objet qui contient ce projet de site Web.

System_CAPS_pubproperty Project

Obtient une référence à ce site Web comme un T:EnvDTE80.Project objet.

System_CAPS_pubproperty References

Obtient un AssemblyReferences objet contenant des références aux assemblys et projets de site Web en cours.

System_CAPS_pubproperty TemplatePath

Obtient le chemin d’accès complet et le nom du dossier qui contient des modèles pour des éléments de site Web.

System_CAPS_pubproperty URL

Obtient l’URL utilisée pour ouvrir le site Web.

System_CAPS_pubproperty UserTemplatePath

Obtient le chemin d’accès au dossier de modèles utilisateur pour les nouveaux éléments de projet.

System_CAPS_pubproperty VSWebSiteEvents

Obtient le VSWebSiteEvents objet pour le site Web, qui peut être utilisé pour ajouter des gestionnaires d’événements.

System_CAPS_pubproperty WebReferences

Obtient un WebReferences objet contenant des références aux services Web consommés par le site Web.

System_CAPS_pubproperty WebServices

Obtient un WebServices objet contenant une collection de services Web exposés par ce site Web.

Méthodes

Nom Description
System_CAPS_pubmethod AddFromTemplate(String, String, String, String, Boolean, String, String)

Crée un objet ProjectItem dans le projet de site Web.

System_CAPS_pubmethod EnsureServerRunning()

Démarre le serveur de développement ASP.NET, si nécessaire et retourne l’URL du site Web.

System_CAPS_pubmethod GetUniqueFilename(String, String, String)

Retourne un nom de fichier qui est unique dans le dossier spécifié, à l’aide de l’extension de nom de fichier et de nom racine spécifié.

System_CAPS_pubmethod PreCompileWeb(String, Boolean)

Compile le site Web et écrit la sortie compilée dans le dossier spécifié.

System_CAPS_pubmethod Refresh()

Actualise l’affichage pour le compte des modifications qui ont été apportées au site Web en dehors de Visual Studio.

System_CAPS_pubmethod WaitUntilReady()

Bloque tous les appels de méthode jusqu'à ce que le processus d’arrière-plan terminée.

Notes

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

Outre les propriétés et méthodes de cette classe, il existe plusieurs propriétés pour les projets de site Web disponible en utilisant la WebSiteProperties classe.

Notes

La fonctionnalité fournie par cette classe est disponible dans les versions de Visual Studio à partir de Visual Studio 2005. Il n’est pas disponible dans Visual Web Developer Express Edition.

Exemples

L’exemple suivant montre 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. En outre, 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 le Comment : créer un complément pour créer un projet de complément et remplacez tout le code dans le fichier Connect.cs 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

EnvDTE
WebSiteProperties
VsWebSite espace de noms
Référence de l'extensibilité et de l'automation
Référence assemblys d’Automation et de l’objet DTE2
Visual Studio Macros
Création de compléments et Assistants

Retour au début