2010-04-08 3 views
0

이것은 나에게 혼란 스러울 것 같습니다. 즉, 클래스 라이브러리를 만들고 그 안에 포함 된 소스 파일에 필요한 모든 참조를 추가하는 것입니다..NET 참조를 네임 스페이스에 일치 시키려면

박쥐에서 300 개의 컴파일러 오류가 발생하여 누락 된 네임 스페이스에 대해 불평했습니다. 모든 System. * 참조를 추가 한 후에 라이브러리가 컴파일됩니다. 그러나 이것은 분명히 최선의 방법은 아닙니다.

e.e. 클래스에 using System.Web.Script;이 필요하면 System.Web.Script 참조가 없습니다. 이러한 참조 중 어느 것이 포함되어 있는지 어떻게 알 수 있습니까? System.Web didnt.

답변

2

예 네임 스페이스와 어셈블리는 .NET에서 두 가지 개념입니다 ... 일반 이름을 공유 할 필요는 있지만 할 수는 있지만 필요하지는 않습니다.

가장 좋은 것은 MSDN에서 누락 된 형식을 검사하는 것입니다 (텍스트 커서가 누락 된 클래스 위에 있으면 Visual Studio에서 F1 키를 누릅니다). MSDN 설명서는 정의 된 네임 스페이스와 어셈블리 유형을 알려줍니다.

2

글쎄, 컴파일러는 누락 된 클래스에 대해 불만을 제기하고 네임 스페이스는 누락되지 않습니다. MSDN에서 클래스를 찾아보아야합니다. 관련 네임 스페이스와 어셈블리를 찾을 수 있습니다. 상단에있는 DropDownList로

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist%28v=VS.80%29.aspx

에 대한 예를 들어

그렇게 하나 이상의 어셈블리 네임 스페이스의 클래스를 정의 할 수 있습니다 다시 openwd 수 있습니다

Namespace: System.Web.UI.WebControls 
Assembly: System.Web (in system.web.dll)
1

네임 스페이스를 읽을 수 있습니다. MyNamespace.Bar를 들어

// AssemblyFoo.dll 
namespace MyNamespace { 
    class Bar {} 
} 

// AssemblyBaz.dll 
namespace MyNamespace { 
    class Qux {} 
} 

당신은 MyNamespace.Qux 당신이 AssemblyBaz.dll을 참조 할 필요가, AssemblyFoo.dll을 참조 할 필요가있다. 네임 스페이스에서 필요한 어셈블리를 추론 할 수는 없습니다.

MSDN을 사용하여 클래스 정의 위치를 ​​찾는 것이 가장 좋습니다.

1

Visual Studio의 개체 브라우저를 사용하여 네임 스페이스를 클릭하면 어셈블리와 경로가 표시됩니다. 어셈블리가 GAC에 있거나 Visual Studio가 그렇지 않다면 그 어셈블리를 찾을 수 있어야합니다.

"System.Web.Script"를 개체 브라우저의 검색 상자에 입력해도 네임 스페이스를 찾을 수 있습니다.이 네임 스페이스를 마우스 오른쪽 단추로 클릭하고 "Go To Definition"이라고 말하면됩니다. 네임 스페이스/어셈블리 그룹이 될 부모에게 연결될 것이고, 그 부모가 상주하는 .dll을 볼 수 있습니다.

관련 문제