如何在ASP.NET中引用一个类

时间:2013-09-19 21:07:10

标签: asp.net class reference

我创建了一个网站,希望有一个类来集中我在整个项目中经常使用的所有代码,例如,一个连接到数据库的方法。问题:在我创建此类之后,在App_Code文件夹中,如何在aspx.cs页面中使用它?我的意思是,应该参考一下吗?我应该通知添加命名空间吗?

谢谢!

4 个答案:

答案 0 :(得分:0)

如果类包装在命名空间中,那么是的,您需要一个与您的命名空间匹配的using语句。例如,如果您的类包含在如下的命名空间中:

namespace My.Namespace
{
   public class Foo
   {
      //Methods, properties, etc.
   }
}

然后您想要使用该类,您需要添加

using My.Namespace;

到您要使用已定义的类的文件的顶部。然后你可以像你期望的那样使用你的课程:

Foo foo = new Foo(); //for a new instance
Foo.Bar();           //for a static method

当然,这是假设该类在同一个程序集中而您不想混淆adding it to the GAC

或者,如果由于某种原因你不使用using语句,你可以使用该类的完全限定名称:

My.Namespace.Foo foo = new My.Namespace.Foo(); //for a new instance
My.Namespace.Foo.Bar();                        //for a static method

如果你的命名空间有冲突,这是最有用的,例如你有

namespace My.Namespace
{
   public class Foo
   {
      //Methods, properties, etc.
   }
}

某处,

namespace MyOther.Namespace
{
   public class Foo
   {
      //Methods, properties, etc.
   }
}

在其他地方,但需要在同一范围内使用它们。

答案 1 :(得分:0)

将类文件创建为公共文件,您将能够访问项目任何部分的类文件。

namespace applicationName
{
    public class DataManager
    {
        public static DataTable GetData(StringBuilder sql)
        {

        }

    }
}

您可以从代码中访问DataManager。

DataManager.GetData(SQL);

答案 2 :(得分:0)

是的,将您的课程设置为namespace,并考虑尽可能地创建课程static,这样就可以在整个项目的代码中使用它,而无需实例化课程。这对于传入对象并使用它们的实用程序类很常见,但不需要将实际的实用程序方法作为类实例的一部分。

例如:

namespace My.Utilities
{
    public class static ConnectionStringHelper
    {
        public static string GetConnectionString()
        {
            // Logic here to actually get connection string
            return yourConnectionString;
        }
    }
}

现在,项目中的代码只需引用My.Utilities命名空间,然后可以使用GetConnectionString()方法,如下所示:

using My.Utilities;

string connString = ConnectionStringHelper.GetConnectionString();

答案 3 :(得分:0)

你可以通过多种方式实现这一目标。从技术上讲,您可以完全删除命名空间,并且您的代码对所有人都是免费的(可以从任何地方自然访问)我更喜欢亲自使用命名空间,但我似乎只是避免使用它们。

如果你的类Foo在Some.Namespace中,你可以这样引用它:

方式一:

   Some.Namespace.Foo foo = new Some.Namespace.Foo()

方式二:使用“使用”命令

如果您的类位于Some.Namespace内,并且您不希望类名前面有所有垃圾,则可以添加:

    using Some.Namespace;

到文件的顶部。

我可能会想念你所说的话。如果您正在谈论设置,您可以创建一个管理所有内容的集中式课程。这个班可以是一个单人。例如:

    class MyClass
    {
         public static MyClas Singliton;
         static MyClass()
         {
               Singliton = new MyClass();
         }

         public void someFunction()
         {

         }

    }

这将创建和管理对您的类的单个引用,以便从那里管理所有内容(因此被称为“单例”)。因此,您可以通过以下方式访问它:

    MyClass.Singliton.someFunction();

有一些方法可以保护您的singliton实例不被覆盖,但这是基本的想法。如果你想在不重新创建课程的情况下管理单个位置的东西,那么单身就是这样!

http://msdn.microsoft.com/en-us/library/ff650316.aspx