Metodo CodeClass.AddImplementedInterface
Aggiunge un'interfaccia all'elenco degli oggetti ereditati.
Spazio dei nomi: EnvDTE
Assembly: EnvDTE (in EnvDTE.dll)
Sintassi
'Dichiarazione
Function AddImplementedInterface ( _
Base As Object, _
Position As Object _
) As CodeInterface
CodeInterface AddImplementedInterface(
Object Base,
Object Position
)
CodeInterface^ AddImplementedInterface(
Object^ Base,
Object^ Position
)
abstract AddImplementedInterface :
Base:Object *
Position:Object -> CodeInterface
function AddImplementedInterface(
Base : Object,
Position : Object
) : CodeInterface
Parametri
- Base
Tipo: System.Object
Obbligatorio.L'interfaccia che verrà implementata dalla classe.Può corrispondere a un oggetto CodeInterface o a un nome di tipo completo.
- Position
Tipo: System.Object
Facoltativo.Valore predefinito = 0.Elemento di codice dopo il quale deve essere aggiunto il nuovo elemento.Se il valore corrisponde a CodeElement, il nuovo elemento verrà aggiunto immediatamente dopo.
Se il valore è di tipo Long, AddImplementedInterface indicherà l'elemento dopo il quale deve essere aggiunto il nuovo elemento.
Poiché negli insiemi il conteggio inizia da 1, il valore 0 indica che il nuovo elemento deve essere inserito all'inizio dell'insieme.Il valore -1 indica invece che l'elemento deve essere inserito alla fine.
Valore restituito
Tipo: EnvDTE.CodeInterface
Oggetto CodeInterface.
Note
AddImplementedInterface aggiunge un riferimento a un'interfaccia che verrà implementata da CodeClass. AddImplementedInterface non inserisce stub dei metodi per i membri dell'interfaccia.
Per i nomi di tipo completi in Visual C++ è necessario utilizzare i due punti (::) come separatore. In tutti gli altri linguaggi è supportato il formato separato dal punto.
La correttezza degli argomenti è determinata dal linguaggio sottostante il modello di codice.
Nota
I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori. Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).
Esempi
Sub AddImplementedInterfaceExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project
' and place the insertion point inside a class definition.
Try
' Retrieve the CodeClass at the insertion point.
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim cls As CodeClass = _
CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementClass), CodeClass)
Dim cm As CodeModel = _
cls.ProjectItem.ContainingProject.CodeModel
' Add a new implemented interface to the class.
cls.AddImplementedInterface(ConvertFullName(cm, _
"System.IDisposable"))
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Function ConvertFullName(ByVal cm As CodeModel, _
ByVal fullName As String) As String
' Convert a .NET type name into a C++ type name.
If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
(cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
Return fullName.Replace(".", "::")
Else
Return fullName
End If
End Function
public void AddImplementedInterfaceExample(DTE2 dte)
{
// Before running this example, open a code document from a project
// and place the insertion point inside a class definition.
try
{
// Retrieve the CodeClass at the insertion point.
TextSelection sel =
(TextSelection)dte.ActiveDocument.Selection;
CodeClass cls =
(CodeClass)sel.ActivePoint.get_CodeElement(
vsCMElement.vsCMElementClass);
CodeModel cm = cls.ProjectItem.ContainingProject.CodeModel;
// Add a new implemented interface to the class.
cls.AddImplementedInterface(ConvertFullName(cm,
"System.IDisposable"), -1);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
string ConvertFullName(CodeModel cm, string fullName)
{
// Convert a .NET type name into a C++ type name.
if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) ||
(cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
return fullName.Replace(".", "::");
else
return fullName;
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Altre risorse
Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione
Individuazione di codice mediante il modello di codice (Visual Basic)
Individuazione di codice mediante il modello di codice (Visual C#)