Reference3 인터페이스
VSLangProj2 네임스페이스의 Reference2 인터페이스를 확장합니다.
네임스페이스: VSLangProj80
어셈블리: VSLangProj80(VSLangProj80.dll)
구문
‘선언
<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")> _
Public Interface Reference3 _
Inherits Reference2
[GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface Reference3 : Reference2
[GuidAttribute(L"5021602E-2025-4299-88D2-0A92E8B41ADF")]
public interface class Reference3 : Reference2
[<GuidAttribute("5021602E-2025-4299-88D2-0A92E8B41ADF")>]
type Reference3 =
interface
interface Reference2
end
public interface Reference3 extends Reference2
Reference3 형식에서는 다음과 같은 멤버를 노출합니다.
속성
이름 | 설명 | |
---|---|---|
Aliases | 지정한 참조의 별칭 이름을 가져오거나 설정합니다.이 속성은 Visual C#에만 적용됩니다. | |
AutoReferenced | 컴파일러에서 참조를 자동으로 참조하는지 여부를 가져옵니다. | |
BuildNumber | 참조의 빌드 번호를 가져옵니다. | |
Collection | References의 컬렉션을 가져옵니다. | |
ContainingProject | 참조를 포함하는 Project를 가져옵니다. | |
CopyLocal | 참조를 로컬 bin 경로로 복사할지 여부를 가져오거나 설정합니다. | |
Culture | 참조의 문화권 문자열을 가져옵니다. | |
Description | 참조의 텍스트 설명을 가져옵니다. | |
DTE | 최상위 확장성 개체를 가져옵니다. | |
Extender | 인프라입니다. Microsoft 내부용입니다. | |
ExtenderCATID | 인프라입니다. Microsoft 내부용입니다. | |
ExtenderNames | 인프라입니다. Microsoft 내부용입니다. | |
Identity | 참조의 고유 식별자를 가져옵니다. | |
Isolated | COM 참조가 격리되어 있는지, 즉 Windows에 등록되어 있지 않은지 여부를 가져오거나 설정합니다. | |
MajorVersion | 참조의 주 버전 번호를 가져옵니다. | |
MinorVersion | 참조의 부 버전 번호를 가져옵니다. | |
Name | 개체의 이름을 가져옵니다. | |
Path | 참조 파일의 경로를 가져옵니다. | |
PublicKeyToken | 강력하게 서명된 참조에서 공개 키 토큰을 가져옵니다. | |
RefType | 참조 형식(어셈블리, COM 또는 네이티브)을 가져옵니다. | |
Resolved | 현재 참조가 확인되었는지 여부를 가져옵니다. | |
RevisionNumber | 참조의 수정 번호를 가져옵니다. | |
RuntimeVersion | 참조를 빌드할 때 대상으로 사용된 런타임의 버전을 가져옵니다..NET 참조에만 해당됩니다. | |
SourceProject | 참조가 프로젝트이면 Project 개체를 가져오고그렇지 않으면 Nothing(null 개체)을 반환합니다. | |
SpecificVersion | 특정 참조 버전만 사용할지 여부를 가져오거나 설정합니다. | |
StrongName | 참조를 공개/개인 키 쌍으로 서명할지 여부를 가져옵니다. | |
SubType | 어셈블리의 하위 형식을 설정하거나 가져옵니다. | |
Type | 사용되지 않습니다.이전 버전과의 호환을 위해서만 포함되었습니다.대신 RefType를 사용하십시오. | |
Version | 지정한 참조의 버전을 가져옵니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
Remove | 참조가 포함된 References 개체에서 참조를 제거합니다. |
위쪽
설명
Reference3에서는 다음과 같은 새 매개 변수를 정의합니다.
예제
다음 예제에서는 열린 Visual Basic 또는 Visual C# 프로젝트에 두 개의 참조를 추가합니다. 그런 다음 GetRefTypeName 함수를 호출하여 참조 형식을 표시하고 ReportReferences 함수를 호출하여 추가 참조 속성을 표시합니다. 이 예제를 추가 기능으로 실행하려면 방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행을 참조하십시오.
추가되는 참조의 기본 경로는 adodb.dll의 경우 <설치 루트>\Program Files\Microsoft.NET\Primary Interop Assemblies이고 spcommon.dll의 경우 <설치 루트>\Program Files\Common Files\SpeechEngines\Microsoft입니다. 예제의 <file path>를 이 경로 또는 적절한 다른 파일 경로로 바꿉니다.
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
applicationObject = CType(application, DTE2)
addInInstance = CType(addInInst, AddIn)
AddNewReference(applicationObject)
End Sub
Sub AddNewReference(ByVal dte As DTE2)
Dim aProject As Project
Dim aVSProject As VSProject2
aProject = applicationObject.Solution.Projects.Item(1)
aVSProject =_
CType(applicationObject.Solution.Projects.Item(1).Object, VSProject2)
' Add an Assembly reference and display its type and additional
' information.
Dim newRef As Reference3
' Replace <file path> with an actual path.
newRef = aVSProject.References.Add("<file path>\adodb.dll")
MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
& GetRefTypeName(newRef))
MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
ReportReferences(newRef))
' Add a COM reference and display its type and a report.
' Replace <file path> with an actual path.
newRef = aVSProject.References.Add("<file path>\spcommon.dll")
MsgBox("The " & newRef.Name() & " added, is of type:" & vbCr _
& GetRefTypeName(newRef))
MsgBox("A report on " & newRef.Name() & ":" & vbCr & _
ReportReferences(newRef))
End Sub
Private Function GetRefTypeName(ByVal ref As Reference3) _
As String
Dim type As String
Select Case ref.Type
Case prjReferenceType.prjReferenceTypeActiveX
type = "COM"
Case prjReferenceType.prjReferenceTypeAssembly
type = "Assembly"
End Select
Return type
End Function
Function ReportReferences(ByVal aRef As Reference3) As String
Dim report As String = ""
Dim type As String
' Each entry in the ArrayList contains a label and a value.
Dim ht As System.Collections.ArrayList = _
New System.Collections.ArrayList
With aRef
ht.Add(New String() {"Name", .Name})
ht.Add(New String() {"Description", .Description})
ht.Add(New String() {"Version", -
String.Format("{0}.{1}.{2}.{3}", _
.MajorVersion, .MinorVersion, .BuildNumber, .RevisionNumber)})
ht.Add(New String() {"Location", .ContainingProject.FullName})
Select Case .Type
Case prjReferenceType.prjReferenceTypeActiveX
type = "COM"
Case prjReferenceType.prjReferenceTypeAssembly
type = "Assembly"
End Select
ht.Add(New String() {"Type", type})
ht.Add(New String() {"Culture", .Culture})
End With
Dim datas() As String
For Each datas In ht
report &= datas(0) & ControlChars.Tab & datas(1) & _
ControlChars.CrLf
Next
Return report
End Function
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
applicationObject = (DTE2)application;
addInInstance = (AddIn)addInInst;
AddNewReference(((DTE2)applicationObject));
}
public void AddNewReference(DTE2 dte)
{
Project aProject = null;
VSProject2 aVSProject = null;
aProject = applicationObject.Solution.Projects.Item(1);
aVSProject =
((VSProject2)(applicationObject.Solution.Projects.Item(1).Object));
// Add an Assembly reference and display its type and a report.
Reference3 newRef = null;
// Replace <file path> with an actual file path.
newRef = ((Reference3)(aVSProject.References.Add(@"
<file path>\adodb.dll")));
MessageBox.Show("The " + newRef.Name + " added, is of type:"
+ "\n" + GetRefTypeName(newRef));
MessageBox.Show("A report on " + newRef.Name + ":" + "\n"
+ ReportReferences(newRef));
// Add a COM reference and display its type and a report.
// Replace <file path> with an actual file path.
newRef = ((Reference3)(aVSProject.References.Add(@"
<file path>\spcommon.dll")));
MessageBox.Show("The " + newRef.Name + " added, is of type:"
+ "\n" + GetRefTypeName(newRef));
MessageBox.Show("A report on " + newRef.Name + ":" + "\n"
+ ReportReferences(newRef));
}
private string GetRefTypeName(Reference3 refIdent)
{
string type = null;
switch (refIdent.Type)
{
case prjReferenceType.prjReferenceTypeActiveX:
type = "COM";
break;
case prjReferenceType.prjReferenceTypeAssembly:
type = "Assembly";
break;
}
return type;
}
public string ReportReferences(Reference3 aRef)
{
string report = "";
string type = null;
// Each entry in the ArrayList contains a label and a value.
System.Collections.ArrayList ht =
new System.Collections.ArrayList();
VSLangProj.Reference temp = aRef;
ht.Add(new string[] { "Name", temp.Name });
ht.Add(new string[] { "Description", temp.Description });
ht.Add(new string[] { "Version", string.Format("{0}.{1}.{2}.{3}"
, temp.MajorVersion, temp.MinorVersion,
temp.BuildNumber, temp.RevisionNumber) });
ht.Add(new string[] { "Location",
temp.ContainingProject.FullName });
switch (temp.Type)
{
case prjReferenceType.prjReferenceTypeActiveX:
type = "COM";
break;
case prjReferenceType.prjReferenceTypeAssembly:
type = "Assembly";
break;
}
ht.Add(new string[] { "Type", type });
ht.Add(new string[] { "Culture", temp.Culture });
string[] datas = null;
foreach (string[] temp1 in ht)
{
datas = temp1;
report += datas[0] + "\t" + datas[1] + "\n";
}
return report;
}