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 | |
---|---|---|
CodeFolders | Obtient une collection de dossiers qui sont configurés en tant que dossiers de code dans le site Web. |
|
DTE | Obtient une référence à la DTE2 objet qui contient ce projet de site Web. |
|
Project | Obtient une référence à ce site Web comme un T:EnvDTE80.Project objet. |
|
References | Obtient un AssemblyReferences objet contenant des références aux assemblys et projets de site Web en cours. |
|
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. |
|
URL | Obtient l’URL utilisée pour ouvrir le site Web. |
|
UserTemplatePath | Obtient le chemin d’accès au dossier de modèles utilisateur pour les nouveaux éléments de projet. |
|
VSWebSiteEvents | Obtient le VSWebSiteEvents objet pour le site Web, qui peut être utilisé pour ajouter des gestionnaires d’événements. |
|
WebReferences | Obtient un WebReferences objet contenant des références aux services Web consommés par le site Web. |
|
WebServices | Obtient un WebServices objet contenant une collection de services Web exposés par ce site Web. |
Méthodes
Nom | Description | |
---|---|---|
AddFromTemplate(String, String, String, String, Boolean, String, String) | Crée un objet ProjectItem dans le projet de site Web. |
|
EnsureServerRunning() | Démarre le serveur de développement ASP.NET, si nécessaire et retourne l’URL du site Web. |
|
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é. |
|
PreCompileWeb(String, Boolean) | Compile le site Web et écrit la sortie compilée dans le dossier spécifié. |
|
Refresh() | Actualise l’affichage pour le compte des modifications qui ont été apportées au site Web en dehors de Visual Studio. |
|
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