CodeClass.AddImplementedInterface, méthode
Ajoute une interface à la liste d'objets hérités.
Espace de noms : EnvDTE
Assembly : EnvDTE (dans EnvDTE.dll)
Syntaxe
'Déclaration
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
Paramètres
- Base
Type : System.Object
Obligatoire.Interface que la classe doit implémenter.Il s'agit soit d'un objet CodeInterface, soit d'un nom de type qualifié complet.
- Position
Type : System.Object
Facultatif.Valeur par défaut = 0.Élément de code après lequel le nouvel élément doit être ajouté.Si la valeur est CodeElement, le nouvel élément est ajouté directement après.
Si la valeur est de type Long, AddImplementedInterface indique l'élément après lequel le nouvel élément doit être ajouté.
Comme la comptabilisation des collections commence à 1, passer la valeur 0 indique que le nouvel élément doit être placé au début de la collection.La valeur -1 signifie que l'élément doit être placé à la fin.
Valeur de retour
Type : EnvDTE.CodeInterface
Objet CodeInterface.
Notes
AddImplementedInterface ajoute une référence à une interface que le CodeClass implémente.AddImplementedInterface n'insère pas de stubs de méthode pour les membres d'interface.
Visual C++ nécessite le format séparé par deux-points (::) pour ses noms de types qualifiés complets.Tous les autres langages prennent en charge le format séparé par des points.
L'exactitude des arguments est déterminée par le langage, au-delà du modèle de code.
[!REMARQUE]
Les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterminables après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées.Pour plus d'informations, consultez la section Les valeurs d'élément de modèle de code peuvent être modifiées de la rubrique Découverte de code à l'aide du modèle de code (Visual Basic).
Exemples
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;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Autres ressources
Comment : compiler et exécuter les exemples de code du modèle objet Automation
Découverte de code à l'aide du modèle de code (Visual Basic)