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 | |
---|---|---|
CodeFolders | Obtém uma coleção de pastas que estão configurados como pastas de código no site da Web. | |
DTE | Obtém uma referência a DTE2 objeto que contém este projeto de site da Web. | |
Project | Obtém uma referência a este site como um Project objeto. | |
References | Obtém um AssemblyReferences objeto contendo referências a assemblies e projetos para o site da Web atual. | |
TemplatePath | Obtém o caminho completo e o nome da pasta que contém modelos para itens do site da Web. | |
URL | Obtém o URL que foi usado para abrir o site. | |
UserTemplatePath | Obtém o caminho para a pasta de modelos do usuário para novos itens de projeto. | |
VSWebSiteEvents | Obtém o VSWebSiteEvents o objeto para o site da Web, que pode ser usado para adicionar manipuladores de eventos. | |
WebReferences | Obtém um WebReferences objeto contendo referências para os serviços da Web consumidos por um site da Web. | |
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 | |
---|---|---|
AddFromTemplate | Cria um novo ProjectItem no site do projeto. | |
EnsureServerRunning | Inicia o aplicativo ASP.NET Development Server, se necessário e retorna a URL do site da Web. | |
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. | |
PreCompileWeb | Compila o site e grava a saída compilada para a pasta especificada. | |
Refresh | Atualiza a exibição para refletirem as alterações que foram feitas para o site fora do Visual Studio. | |
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çã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
Outros recursos
Automação e referência a extensibilidade