多个asp.net文件的多个cs文件

时间:2011-10-23 18:59:43

标签: c# asp.net oop

我有一个使用C#的未编译网站。我有6个文件在随机类中共享一堆函数。我想将它们转换为更合理的分离,但我不知道如何在另一个cs文件中引用类。

理想情况下,我将这些文件分成cs文件到一个文件中的shoppingcart类,另一个文件中的例程函数等等。所有6个文件都可以引用任何分离的cs文件。

如果我们不编译它们,这是否可能?

更新

好的,所以我的代码可能看起来像这样,而且ShoppingCart.cart的语法不正确,但它是我希望如何工作的一个例子:

default.aspx.cs:

using ShoppingCart;

public partial class DefaultPage : System.Web.UI.Page
{
  protected void page_load()
  {
    ShoppingCart.cart.CheckCart("newguy");
  }

shoppingcart.cs:

namespace ShoppingCart
{
 public partial class cart : System.Web.UI.Page
  {
    public string CheckCart(string cartname)
    {
      return "test";
    }

3 个答案:

答案 0 :(得分:2)

  

如果我们不编译它们,这是否可能?

这个问题没有意义。

代码文件通过namespaceusing指令的组合引用另一个代码文件。

你的例子显示了这一点。但是,它是完全无效的代码(不会编译),因为您没有要引用的cart类的实例。它从未被实例化。

这意味着您需要将CheckCart方法标记为静态,将购物车类转换为单例,或使DefaultPage从购物车下降。

无论如何,需要编译ShoppingCart命名空间,这意味着您正在谈论的那6个文件需要被分组到一个程序集中,或者作为主项目的一部分,以便运行代码。

如果您只是将代码放入app_code文件夹,那么网站项目会完全在幕后完成。但是,WSP会做一些其他意想不到的事情,如果你和他们一起工作了很长一段时间,你会发现它们完全是垃圾。

因此,在John的评论的基础上,将其转换为Web应用程序项目。对于附加代码,您可以选择创建单独的装配项目并将其放入其中,或者只是将其保留在主项目的子文件夹中。

答案 1 :(得分:1)

将它们保存在同一名称空间中。这将允许您从其他类调用其他类......

你的cs文件被编译。它只是发生在引擎盖下;)

答案 2 :(得分:1)

如果您需要将业务逻辑与UI分开,一个选项是为业务逻辑创建单独的类库,并从UI层调用这些方法。以下链接将帮助您

Creating a Web Application Project with a Class Library

或者您可以将它们保存在同一个项目中,但要确保所有类都使用相同的命名空间。