В каком пространстве имен находятся мои занятия, когда я не помещаю пространство имен? - PullRequest
3 голосов
/ 03 апреля 2009

, если я не помещаю пространство имен в мои классы (по сравнению с сетью 2008), в каком пространстве имен будут построены мои классы?

обновление Странно, когда я добавляю пространство имен, я не могу ссылаться на методы классов из моего пользовательского элемента управления.

Если я явно установлю пространство имен и добавлю «использование ...» в свой элемент управления, я все равно не смогу его увидеть!

Как это может быть?

    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.

Ответы [ 2 ]

4 голосов
/ 03 апреля 2009

Если вы не предоставите пространство имен, тогда ваш тип не имеет пространства имен. Помните, что пространства имен не имеют никакого значения после компиляции. Они просто добавляются в начало имени вашего типа, чтобы создать более длинное имя с большей вероятностью быть уникальным.

Редактировать: Я думаю, что у вас может быть две отдельные сборки, и одна должна ссылаться на другую, но это не так. Если два проекта находятся в одном решении, средство просмотра классов покажет все типы из всех проектов, но это не обязательно означает, что ProjectA ссылается на ProjectB. Чтобы использовать типы из ProjectB в ProjectA, необходимо убедиться, что ссылка на проект существует.

1 голос
/ 03 апреля 2009

как вы сказали, у этого класса не будет никакого пространства имен, он будет доступен без предложения using.

Пространства имен - это функция для наведения порядка в ваших классах путем классификации, в основном в соответствии с их функциональностью

EDIT

Согласно вашему обновлению, я думаю, что ваш "глобальный" класс может создать проблемы из-за предложения global :: ... вы не могли бы изменить имя класса, чтобы посмотреть, работает ли он?

...