Interfaccia VSProject2
Aggiornamento: novembre 2007
Contiene le informazioni specifiche di un progetto di Visual Basic, Visual C# o Visual J#. Viene restituito dall'oggetto Object se il progetto specificato è un progetto di Visual Basic, Visual C# o Visual J#.
Spazio dei nomi: VSLangProj80
Assembly: VSLangProj80 (in VSLangProj80.dll)
Sintassi
<GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")> _
Public Interface VSProject2 _
Implements VSProject
Dim instance As VSProject2
[GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface VSProject2 : VSProject
[GuidAttribute(L"B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface class VSProject2 : VSProject
public interface VSProject2 extends VSProject
Note
Project è un oggetto extensibility principale che può contenere informazioni sui progetti di tutti i linguaggi. La proprietà Object dell'oggetto Project restituisce un oggetto il cui tipo dipende dal linguaggio utilizzato nel progetto. Nel caso di progetti di Visual Basic, Visual C# e Visual J#, questo oggetto è un oggetto VSProject2.
La proprietà Object restituisce un tipo di dati Object. L'oggetto dati restituito dalla proprietà Object può essere convertito esplicitamente in VSProject2. L'esempio seguente dimostra tale conversione tramite la funzione CType. L'oggetto PrjKind viene utilizzato per eseguire il test del tipo di progetto prima della conversione.
Esempi
Per eseguire questo esempio come componente aggiuntivo, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.
Per stabilire se un progetto di Visual Basic o Visual C# è un progetto per Smart Device, utilizzare le proprietà prjKindSDEVBProject e prjKindSDECSharpProject.
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
ByVal connectMode As ext_ConnectMode, ByVal addInInst _
As Object, ByRef custom As Array) Implements _
IDTExtensibility2.OnConnection
applicationObject = CType(application, DTE2)
addInInstance = CType(addInInst, AddIn)
VSProject2Example(applicationObject)
End Sub
Sub VSProject2Example(ByVal dte As DTE2)
Dim aProject As Project
Dim aVSProject2 As VSProject2
aProject = applicationObject.Solution.Projects.Item(1)
MsgBox(aProject.Kind & aProject.Name)
If (aProject.Kind = PrjKind.prjKindVBProject) Or_
(aProject.Kind = PrjKind.prjKindCSharpProject) Or_
(aProject.Kind = PrjKind2.prjKindVJSharpProject) Then
aVSProject2 = CType(applicationObject.Solution.Projects.Item(1).Object, _
VSProject2)
MsgBox(aVSProject2.Project.FullName)
Else
MsgBox("The first project is not a Visual Basic, C# _
or J# project.")
End If
End Sub
// To use Messabox.Show, a reference to Windows.Forms is required.
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
applicationObject = (DTE2)application;
addInInstance = (AddIn)addInInst;
VSProject2Example((DTE2)applicationObject);
}
public void VSProject2Example(DTE2 dte)
{
Project aProject = null;
VSProject aVSProject2 = null;
aProject = applicationObject.Solution.Projects.Item( 1 );
MessageBox.Show( aProject.Kind + aProject.Name);
if ( ( aProject.Kind == PrjKind.prjKindVBProject ) |
( aProject.Kind == PrjKind.prjKindCSharpProject ) |
( aProject.Kind == PrjKind2.prjKindVJSharpProject ) )
{
aVSProject2 = ( ( VSProject )
(applicationObject.Solution.Projects.Item( 1 ).Object ) );
MessageBox.Show( aVSProject2.Project.FullName);
}
else
{
MessageBox.Show( "The first project is not a Visual Basic,
C# or J# project.");
}
}