Método FileCodeModel2.AddInterface
Cria uma nova construção de código de interface e insere o código no local correto.
Namespace: EnvDTE80
Assembly: EnvDTE80 (em EnvDTE80.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: StringObrigatório. O nome da nova interface.
Position
Tipo: ObjectOpcional. Padrão = 0. O elemento de código após o qual você deseja adicionar o novo elemento. Se o valor for um CodeElement, e em seguida, o novo elemento é adicionado imediatamente após ele.
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 de 0 indica que o novo elemento deve ser colocado no início da coleção. O valor-1 significa que o elemento deve ser colocado no final.
Bases
Tipo: ObjectOpcional. 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: vsCMAccessOpcional. A vsCMAccess constante.
Valor de retorno
Tipo: CodeInterface
A CodeInterface object.
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 atrás o 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ável.
Consulte também
Referência
Outros recursos
Como compilar e executar os exemplos de código do modelo de objeto Automation