2009-04-03 2 views
3

내 클래스에 네임 스페이스를 두지 않으면 (vs.net 2008), 어떤 네임 스페이스에서 내 클래스가 빌드됩니까?네임 스페이스를 넣지 않을 때 내 클래스는 어떤 네임 스페이스입니까?

업데이트 이상한 때 네임 스페이스를 추가 할 때 내 사용자 정의 컨트롤에서 클래스 메서드를 참조 할 수없는 것처럼 보입니다.

명시 적으로 네임 스페이스를 설정하고 내 컨트롤에 'using ...'을 추가하면 여전히 볼 수 없습니다!

어떻게 될 수 있습니까?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Configuration; 
/// <summary> 
/// Summary description for Globals 
/// </summary> 
public class Globals 
{ 
    public Globals() 
    { } 


    public static string ConnectionString 
    { 
     get 
     { 
      return ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString; 
     } 
    } 

} 

내 컨트롤 : 당신이 다음 네임 스페이스를 제공하지 않는 경우

using System; 
using System.Data; 
using System.Data.SqlClient; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 


public partial class MyStats : System.Web.UI.UserControl 
{ 




    protected void Page_Load(object sender, EventArgs e) 
    { 


    //etc. 
+0

클래스가 사용자 정의 컨트롤과 다른 프로젝트에 있거나 동일한 프로젝트에 있습니까? –

+0

또한 어떤 코드를 게시 할 수 있습니다. 이는 어떤 일이 일어나는지 파악하는 데 도움이 될 수 있습니다. –

+0

좋아, 내가 몇 가지 코드를 게시, 전 globals 클래스에 네임 스페이스가 있었지만 여전히 내 컨트롤에서 그것을 참조했을 때 작동하지 않았다. – Blankman

답변

4

이 유형의 네임 스페이스가 없습니다. 네임 스페이스는 컴파일 후 의미가 없음을 기억하십시오. 그들은 단지 당신이 고유 한 확률이 더 큰 긴 이름을 만들기 위해 타입의 이름의 시작 부분에 추가됩니다.

편집 : 두 개의 개별 어셈블리가 있고 다른 하나는 참조해야한다고 생각하지만 그렇지 않습니다. 두 프로젝트가 하나의 솔루션에있는 경우 클래스 뷰어는 모든 프로젝트의 모든 유형을 표시하지만 반드시 ProjectA을 참조하는 것은 아닙니다. ProjectB을 의미합니다. ProjectB의 유형을 ProjectA에 사용하려면 프로젝트 참조가 있는지 확인해야합니다.

+0

"... 다음에는 네임 스페이스에 네임 스페이스가 없습니다."물론 글로벌 네임 스페이스에 배치됩니다. http://msdn.microsoft.com/en-gb/library/z2kcy19k.aspx – weston

1

당신이 말했듯이, 그 클래스는 네임 스페이스를 가지지 않을 것이고, 그것은 using 절없이 접근 가능할 것입니다.

네임 스페이스

은 주로 분류하여, 수업에 주문을 넣어

편집

이 갱신에 따르면, 당신의 "글로벌"클래스는 어쩌면 때문에 문제를두고 생각하는 자신의 funcionality에 따라위한 기능입니다 global :: clause ... 클래스의 이름을 변경하여 작동하는지 확인 하시겠습니까?

관련 문제