Metodo FileCodeModel2.AddClass (String, Object, Object, Object, vsCMAccess)
Crea un nuovo costrutto di codice della classe e inserisce il codice nella posizione corretta.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
Function AddClass ( _
Name As String, _
Position As Object, _
Bases As Object, _
ImplementedInterfaces As Object, _
Access As vsCMAccess _
) As CodeClass
CodeClass AddClass(
string Name,
Object Position,
Object Bases,
Object ImplementedInterfaces,
vsCMAccess Access
)
CodeClass^ AddClass(
String^ Name,
Object^ Position,
Object^ Bases,
Object^ ImplementedInterfaces,
vsCMAccess Access
)
abstract AddClass :
Name:string *
Position:Object *
Bases:Object *
ImplementedInterfaces:Object *
Access:vsCMAccess -> CodeClass
function AddClass(
Name : String,
Position : Object,
Bases : Object,
ImplementedInterfaces : Object,
Access : vsCMAccess
) : CodeClass
Parametri
- Name
Tipo: System.String
obbligatorio.Il nome della classe.
- 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, quindi il nuovo elemento verrà aggiunto immediatamente dopo.
Se il valore è di tipo long, quindi AddClass indica l'elemento dopo il quale deve essere aggiunto il nuovo elemento.
Poiché nelle raccolte il conteggio inizia da 1, un valore 0 indica che il nuovo elemento deve essere inserito all'inizio della raccolta.Il valore -1 indica che l'elemento deve essere inserito alla fine.
- Bases
Tipo: System.Object
facoltativo.Valore predefinito = 0.SafeArray di nomi di tipi completi o CodeClass oggetti da cui la nuova classe eredita le implementazioni.
- ImplementedInterfaces
Tipo: System.Object
facoltativo.Valore predefinito = 0.SafeArray di nomi di tipi completi o CodeInterface oggetti, ognuno dei quali rappresenta interfacce che dovranno essere implementate dalla nuova classe.
- Access
Tipo: EnvDTE.vsCMAccess
facoltativo.In vsCMAccess costante.
Valore restituito
Tipo: EnvDTE.CodeClass
In CodeClass oggetto.
Note
La precisione degli argomenti è determinata dal linguaggio del modello di codice.
Esempi
Sub AddClassExample2(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 classes array and the implemented
' interfaces array.
Dim bases() As Object = {ConvertFullName(cm, "System.Object")}
Dim interfaces() As Object = { _
ConvertFullName(cm, "System.IDisposable"), _
ConvertFullName(cm, "System.IComparable") _
}
' Create a new class.
projItem.FileCodeModel.AddClass("TestClass", , bases, _
interfaces)
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 AddClassExample2(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 classes array and the implemented
// interfaces array.
object[] bases = {ConvertFullName(cm, "System.Object")};
object[] interfaces = {
ConvertFullName(cm, "System.IDisposable"),
ConvertFullName(cm, "System.IComparable")
};
// Create a new class.
projItem.FileCodeModel.AddClass("TestClass", -1, bases,
interfaces, 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 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