CodeClass2.AddImplementedInterface - метод (Object, Object)
Добавляет интерфейс в список унаследованных объектов.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
Function AddImplementedInterface ( _
Base As Object, _
Position As Object _
) As CodeInterface
CodeInterface AddImplementedInterface(
Object Base,
Object Position
)
CodeInterface^ AddImplementedInterface(
Object^ Base,
Object^ Position
)
abstract AddImplementedInterface :
Base:Object *
Position:Object -> CodeInterface
function AddImplementedInterface(
Base : Object,
Position : Object
) : CodeInterface
Параметры
- Base
Тип: System.Object
Обязательный.Интерфейс, реализуемый классом.Это может быть либо объект CodeInterface, либо полное имя типа.
- Position
Тип: System.Object
Необязательный.Значение по умолчанию: 0Элемент кода, после которого добавляется новый интерфейс.
Если значение имеет тип данных Long, Position указывает, после какого элемента следует добавить новый элемент.
Поскольку в коллекциях нумерация элементов начинается с 1, значение 0 означает, что новый элемент следует поместить в начало коллекции.Значение -1 означает, что элемент следует поместить в конец.
Возвращаемое значение
Тип: EnvDTE.CodeInterface
Объект CodeInterface.
Заметки
AddImplementedInterface добавляет ссылку на интерфейс, реализуемый объектом CodeClass2.AddImplementedInterface не вставляет заглушки метода для членов интерфейса.
Для полных имен типов в машинном коде Visual C++ в качестве разделителей необходимо использовать два двоеточия (::).Все остальные языки поддерживают формат с разделителем-точкой.
Правильность аргументов определяется языком, на котором основана модель кода.
![]() |
---|
Значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и другие, после внесения некоторых изменений могут оказаться недетерминированными, другими словами, нельзя рассчитывать, что их значения будут всегда оставаться одинаковыми.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" в разделе Практическое руководство. Поиск кода при помощи модели кода (Visual Basic). |
Примеры
[Visual Basic]
Sub AddImplementedInterfaceExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project
' and place the insertion point inside a class definition.
Try
' Retrieve the CodeClass at the insertion point.
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim cls As CodeClass = _
CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementClass), CodeClass)
Dim cm As CodeModel = _
cls.ProjectItem.ContainingProject.CodeModel
' Add a new implemented interface to the class.
cls.AddImplementedInterface(ConvertFullName(cm, _
"System.IDisposable"))
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
[C#]
public void AddImplementedInterfaceExample(DTE2 dte)
{
// Before running this example, open a code document from a project
// and place the insertion point inside a class definition.
try
{
// Retrieve the CodeClass at the insertion point.
TextSelection sel =
(TextSelection)dte.ActiveDocument.Selection;
CodeClass cls =
(CodeClass)sel.ActivePoint.get_CodeElement(
vsCMElement.vsCMElementClass);
CodeModel cm = cls.ProjectItem.ContainingProject.CodeModel;
// Add a new implemented interface to the class.
cls.AddImplementedInterface(ConvertFullName(cm,
"System.IDisposable"), -1);
}
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;
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
AddImplementedInterface - перегрузка
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)
Практическое руководство. Поиск кода при помощи модели кода (Visual C#)