Compartir a través de


VSProject2 (Interfaz)

Actualización: noviembre 2007

Contiene la información específica para un proyecto de Visual Basic, Visual C# o Visual J#. El objeto Object lo devuelve cuando el proyecto es un proyecto de Visual Basic, Visual C# o Visual J#.

Espacio de nombres:  VSLangProj80
Ensamblado:  VSLangProj80 (en VSLangProj80.dll)

Sintaxis

<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

Comentarios

Project es un objeto de extensibilidad general que puede contener información sobre proyectos de cualquier lenguaje. La propiedad Object del objeto Project devuelve un objeto cuyo tipo depende del lenguaje del proyecto utilizado. En el caso de Visual Basic, Visual C# y Visual J#, ese objeto es un objeto VSProject2.

La propiedad Object devuelve un tipo de datos Object. A continuación, el objeto de datos devuelto por la propiedad Object puede convertirse explícitamente en VSProject2. En el ejemplo siguiente se muestra esta conversión mediante la función CType. PrjKind se usa para probar el tipo del proyecto antes de la conversión.

Ejemplos

Para ejecutar este ejemplo como complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

Para determinar si un proyecto de Visual Basic o de Visual C# es un proyecto para dispositivos inteligentes, utilice prjKindSDEVBProject y 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."); 
    } 
}

Vea también

Referencia

VSProject2 (Miembros)

VSLangProj80 (Espacio de nombres)

VSProject