FileCodeModel.AddInterface(String, Object, Object, vsCMAccess) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein neues Schnittstellen-Codekonstrukt und fügt den Code am korrekten Ort ein.
EnvDTE::CodeInterface AddInterface(std::wstring const & Name, winrt::Windows::Foundation::IInspectable const & Position, winrt::Windows::Foundation::IInspectable const & Bases, EnvDTE::vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[System.Runtime.InteropServices.DispId(9)]
public EnvDTE.CodeInterface AddInterface (string Name, object Position, object Bases, EnvDTE.vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[<System.Runtime.InteropServices.DispId(9)>]
abstract member AddInterface : string * obj * obj * EnvDTE.vsCMAccess -> EnvDTE.CodeInterface
Public Function AddInterface (Name As String, Optional Position As Object, Optional Bases As Object, Optional Access As vsCMAccess = EnvDTE.vsCMAccess.vsCMAccessDefault) As CodeInterface
Parameter
- Name
- String
Erforderlich. Der Name der neuen Schnittstelle.
- Position
- Object
(Optional) Standardwert = 0. Das Codeelement, nach dem das neue Element eingefügt werden soll. Wenn der Wert ein CodeElement ist, wird das neue Element direkt im Anschluss eingefügt.
Wenn der Wert ein Long-Datentyp ist, dann gibt AddInterface(String, Object, Object, vsCMAccess) das Element an, nach dem das neue Element eingefügt werden soll.
Da Auflistungen mit dem Index 1 beginnen, gibt ein Übergabewert von 0 an, dass das neue Element zu Anfang der Auflistung eingefügt werden soll. Der Wert -1 bedeutet, dass das Element am Ende eingefügt werden soll.
- Bases
- Object
(Optional) Der Standardwert ist Nothing. Diese Variante enthält ein SafeArray mit vollqualifizierten Typnamen oder CodeInterface-Objekten, von denen die neue Schnittstelle ableitet.
- Access
- vsCMAccess
(Optional) Eine vsCMAccess-Konstante.
Gibt zurück
Ein CodeInterface-Objekt.
- Attribute
Beispiele
Sub AddInterfaceExample2(ByVal dte As DTE2)
' Before running this example, open a code document from a project.
Try
Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem
Dim cm As CodeModel = projItem.ContainingProject.CodeModel
' Initialize the base interfaces array.
Dim bases() As Object = { _
ConvertFullName(cm, "System.IDisposable"), _
ConvertFullName(cm, "System.IComparable") _
}
' Create a new class.
projItem.FileCodeModel.AddInterface("TestInterface", , bases)
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 AddInterfaceExample2(DTE2 dte)
{
// Before running this example, open a code document from
// a project.
try
{
ProjectItem projItem = dte.ActiveDocument.ProjectItem;
CodeModel cm = projItem.ContainingProject.CodeModel;
// Initialize the base interfaces array.
object[] bases = {
ConvertFullName(cm, "System.IDisposable"),
ConvertFullName(cm, "System.IComparable")
};
// Create a new class.
projItem.FileCodeModel.AddInterface("TestInterface", -1, bases,
vsCMAccess.vsCMAccessPublic);
}
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;
}
Hinweise
Visual C++ verlangt ein Format mit Trennung durch Doppelpunkte (::) oder die vollqualifizierten Typnamen. Alle anderen Sprachen unterstützen das Format mit Trennung durch Punkte.
Die Richtigkeit der Argumente hängt von der Sprache hinter dem Code Modell ab.