Metodo CodeModel2.AddInterface
Crea un nuovo costrutto di codice di un'interfaccia e inserisce il codice nella posizione corretta.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
Function AddInterface ( _
Name As String, _
Location As Object, _
Position As Object, _
Bases As Object, _
Access As vsCMAccess _
) As CodeInterface
CodeInterface AddInterface(
string Name,
Object Location,
Object Position,
Object Bases,
vsCMAccess Access
)
CodeInterface^ AddInterface(
String^ Name,
Object^ Location,
Object^ Position,
Object^ Bases,
vsCMAccess Access
)
abstract AddInterface :
Name:string *
Location:Object *
Position:Object *
Bases:Object *
Access:vsCMAccess -> CodeInterface
function AddInterface(
Name : String,
Location : Object,
Position : Object,
Bases : Object,
Access : vsCMAccess
) : CodeInterface
Parametri
Name
Tipo: StringObbligatorio. Il nome dell'interfaccia da aggiungere.
Location
Tipo: ObjectObbligatorio. Percorso e nome file per la definizione della nuova interfaccia. A seconda del linguaggio, il nome file può essere relativo o assoluto rispetto al file di progetto. Se non ne costituisce già un elemento, il file viene aggiunto al progetto. Se non è possibile creare il file e aggiungerlo al progetto, non sarà possibile completare l'esecuzione di AddInterface.
Position
Tipo: ObjectFacoltativa. Valore predefinito = 0. Elemento di codice dopo il quale deve essere aggiunto il nuovo elemento. Se il valore è un oggetto CodeElement, il nuovo elemento verrà aggiunto immediatamente dopo.
Se il valore è di tipo Long, AddInterface indicherà l'elemento dopo il quale deve essere aggiunto il nuovo elemento.
Poiché nelle raccolte il conteggio inizia da 1, il valore 0 indica che il nuovo elemento deve essere inserito all'inizio della raccolta. Il valore -1 indica invece che l'elemento deve essere inserito alla fine.
Bases
Tipo: ObjectFacoltativa. Il valore predefinito è Nothing o nullriferimento null (Nothing in Visual Basic). Variant contenente un elemento SafeArray di nomi di tipi completi o di oggetti CodeInterface da cui deriva la nuova interfaccia.
Access
Tipo: vsCMAccessFacoltativa. Costante vsCMAccess.
Valore restituito
Tipo: CodeInterface
Oggetto CodeInterface.
Note
Il linguaggio Visual C++ nativo richiede il formato separato dai due punti (::) per i nomi di tipo completi. 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 AddInterfaceExample(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.
cm.AddInterface("TestInterface", projItem.Name, , 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 AddInterfaceExample(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.
cm.AddInterface("TestInterface", projItem.Name, -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;
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre 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#)