2014-11-17 4 views
3

iTextSharp 어셈블리에는 코어 어셈블리의 BouncyCastle 네임 스페이스가 포함되어 있지만, VB.Net 응용 프로그램은 다른 버전의 BouncyCastle을 이미 사용하고 있습니다. C#이 "extern alias"를 사용하여이 문제를 해결할 수 있다고 생각하지만 VB.NET에서이 작업을 수행하는 방법을 찾을 수 없습니다.VB.NET을 사용하여 두 어셈블리에 정의 된 동일한 네임 스페이스에 대한 해결 방법

VB.Net의 extern 별칭이나 특정 어셈블리의 특정 네임 스페이스를 제외하는 다른 방법이 있습니까?

+0

당신이 2 개의 다른 버전을 사용하는 방법을 묻는 귀하의 응용 프로그램에서 동일한 어셈블리의? 그렇지 않다면 해답은 네임 스페이스를 전역으로 가져 오지 않고 항상 전체 경로를 참조하는 것입니다. 예를 들어, TEXT는 많은 어셈블리에있는 유명한 네임 스페이스입니다. StringBuilder 어셈블리와 같은 것을 원할 때, 예를 들어 'System.Text.StringBuilder'라는 정식 이름을 접두어로 사용해야합니다. 이게 너에게 필요한거야? – Steve

+0

첫 번째로 옳았습니다. 애플리케이션은 동일한 클래스의 두 가지 버전을 사용해야하지만 클래스는 두 개의 다른 어셈블리에 정의되어 있습니다. 지금은 응용 프로그램 전체에서 두 번째 버전 만 사용하는 것으로 보입니다. – Rattle

답변

1

이 같은 가져 오기에 네임 스페이스 별칭을 수 있습니다

Imports [ aliasname = ] namespace 
-or- 
Imports [ aliasname = ] namespace.element 

IE

Imports strbld = System.Text.StringBuilder 
Imports dirinf = System.IO.DirectoryInfo 

Public Function GetFolders() As String 
    Dim sb As New strbld 

    Dim dInfo As New dirinf("c:\") 
    For Each dir As dirinf In dInfo.GetDirectories() 
     sb.Append(dir.Name) 
     sb.Append(ControlChars.CrLf) 
    Next 

    Return sb.ToString 
End Function 
전체 정보를

참조 MSDN 참조 : http://msdn.microsoft.com/en-us/library/7f38zh8x.aspx

+0

이 솔루션은 서로 다른 네임 스페이스의 동일한 이름의 클래스를 사용하기위한 것으로 생각합니다. 두 가지 어셈블리에서 동일한 네임 스페이스가 정의 된 곳이었습니다. – Rattle