Método FileCodeModel.AddInterface
Cria uma nova construção de código de interface e insere o código no local correto.
Namespace: EnvDTE
Assembly: EnvDTE (em EnvDTE.dll)
Sintaxe
'Declaração
Function AddInterface ( _
Name As String, _
Position As Object, _
Bases As Object, _
Access As vsCMAccess _
) As CodeInterface
CodeInterface AddInterface(
string Name,
Object Position,
Object Bases,
vsCMAccess Access
)
CodeInterface^ AddInterface(
String^ Name,
Object^ Position,
Object^ Bases,
vsCMAccess Access
)
abstract AddInterface :
Name:string *
Position:Object *
Bases:Object *
Access:vsCMAccess -> CodeInterface
function AddInterface(
Name : String,
Position : Object,
Bases : Object,
Access : vsCMAccess
) : CodeInterface
Parâmetros
- Name
Tipo: System.String
Obrigatório.O nome da nova interface.
- Position
Tipo: System.Object
Opcional.Padrão = 0.O elemento de código após o qual você deseja adicionar o novo elemento.Se o valor é um CodeElement, em seguida, o novo elemento é adicionado imediatamente após o proprietário.
Se o valor é um tipo de dados longos, em seguida, AddInterface indica o elemento após o qual você deseja adicionar o novo elemento.
Porque coleções começam sua contagem em 1, passando a 0 indica que o novo elemento deve ser colocado no início da coleção.Um valor de-1 significa que o elemento deve ser colocado no final.
- Bases
Tipo: System.Object
Opcional.Valor padrão é Nothing.Uma variante que mantém um SafeArray de nomes de tipo totalmente qualificado ou CodeInterface objetos do qual deriva a nova interface.
- Access
Tipo: EnvDTE.vsCMAccess
Opcional.A vsCMAccess constante.
Valor de retorno
Tipo: EnvDTE.CodeInterface
A CodeInterface objeto.
Comentários
Visual C++ requer separados por dois-pontos (::) format para seus nomes de tipo totalmente qualificado. Todos os outros idiomas oferecem suporte o formato separado por período.
A correção dos argumentos é determinada pelo idioma por trás do modelo de código.
Exemplos
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;
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.
Consulte também
Referência
Outros recursos
Como: compilar e Executar a automação de exemplos de Código do modelo de objeto