FileCodeModel2.AddInterface 메서드 (String, Object, Object, vsCMAccess)
새 인터페이스 코드 구문을 만든 다음 올바른 위치에 코드를 삽입합니다.
네임스페이스: EnvDTE80
어셈블리: EnvDTE80(EnvDTE80.dll)
구문
‘선언
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
매개 변수
- Name
형식: System.String
필수적 요소로서,새 인터페이스의 이름입니다.
- Position
형식: System.Object
선택적 요소로서,기본값은 0입니다.이 코드 요소 뒤에 새 요소가 추가됩니다.값이 CodeElement이면 바로 뒤에 새 요소가 추가됩니다.
값이 Long 데이터 형식이면 AddInterface에서는 요소를 설정하여 이 요소 뒤에 새 요소를 추가합니다.
컬렉션에서는 1부터 카운트를 시작하므로 0을 설정하면 새 요소가 컬렉션의 맨 처음에 놓이며,값 -1을 설정하면 요소가 맨 끝에 놓입니다.
- Bases
형식: System.Object
선택적 요소로서,기본값은 Nothing으로,새 인터페이스가 파생되는 정규화된 형식 이름 또는 CodeInterface 개체의 SafeArray를 보유하는 variant입니다.
- Access
형식: EnvDTE.vsCMAccess
선택적 요소로서,vsCMAccess 상수입니다.
반환 값
형식: EnvDTE.CodeInterface
CodeInterface 개체입니다.
구현
FileCodeModel.AddInterface(String, Object, Object, vsCMAccess)
설명
Visual C++를 사용하려면 정규화된 형식 이름에 대해 콜론으로 구분된 형식(::)이 필요합니다. 다른 모든 언어에서는 마침표로 구분된 형식을 지원합니다.
인수가 올바른지 여부는 코드 모델에 사용되는 언어에 의해 결정됩니다.
예제
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;
}
.NET Framework 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.