2014-04-24 3 views
0

계층 구조를 사용하지만 난 VB를 사용하고 2012 년는 네임 스페이스를 가져오고 난 항상 그 아래의 모든 네임 스페이스를 포함 할 것 네임 스페이스를 사용하여/수입/포함 생각

Visual Studio에서 네임 스페이스를 가져 오는 문제에 봉착했습니다. 그물 하나의 솔루션 파일 안에 두 개의 프로젝트가 있습니다. P1의 내부에 있었던 클래스를 P2로 옮기려고합니다. P1 내부의 코드는 "Imports System.Data"를 가지고 있지만 새 프로젝트/클래스에서는 "Imports System.Data.SqlClient"또는 구체적으로 Visual Studio에서 무엇을 알지 못한다고 말할 수는 없습니다. 도록 SqlConnection은

Imports System.Data 
'Imports System.Data.SqlClient 

Public Class Class1 

    Private con As SqlConnection 


    Public Function returnInt2() As Integer 
     Return 2 
    End Function 

End Class 

내 질문은 두 배

1.Should "수입 System.Data는"도 "의 System.Data.SQLClient"를 가져입니까?

2.P2가 아니라 P1이 아니라면 수입이 구체적이어야하는 이유가 누구에게 있습니까?

+1

1) 아니요. System.Data에 SQL Server, ODBC, OleDb에 대한 데이터 액세스 네임 스페이스가 포함되어 있으므로 거의 모든 사용자가 동시에 필요하지 않습니다. 2)는 프로젝트 참조에 따라 달라지며 – Plutonix

답변

1

VB.Net 프로젝트를 사용하면 프로젝트 전체의 네임 스페이스 가져 오기를 지정할 수 있습니다. 이것들은 프로젝트 소유지의 References 페이지에서 볼 수 있습니다. 첫 번째 프로젝트 인 P1에는 Project 전체에서 System.Data.SqlClient를 가져올 가능성이 있지만 P2는 그렇지 않습니다.

+0

프로젝트의 참조 페이지에서 sqlClient 네임 스페이스를 확인하지 않았지만 sqlClient를 찾았습니다 P1의 설정 파일에 의해 추가 된 네임 스페이스 – Kevin

1

아니요 가져 오기 네임 스페이스가 모든 하위 네임 스페이스를 가져 오지 않습니다. 그렇게했다면 수백 줄의 이름 공간이있을 수 있습니다.

네임 스페이스를 가져 오면 해당 네임 스페이스의 모든 하위 멤버에 액세스 할 수 있습니다.

여기서 추론하는 이유는 네임 스페이스가 포함하는 모든 라이브러리를 패키지해야한다는 것입니다. 따라서 모든 네임 스페이스를 가져온 경우 바이너리가 상당히 커집니다.

+0

이라고 불리우는 것이 분명합니다. 매우 빠르게 커질 수 있습니다. – Kevin

관련 문제