我有一个页面Default.aspx,它有自己的代码隐藏文件,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public int[] anArray;
...
}
我想要做的是从\ App_Code文件夹中声明的C#类(不绑定页面)访问“anArray”。我该怎么办?
感谢。
编辑:如第一条评论所述,我真的很赞赏你重构我的连接对象的建议。但是,我在这里真正要做的是重写一个旧的PHP应用程序,以便熟悉基本的C#和ASP.NET,所以这段代码永远不会真实存在。因此,我仍然以一种方式(如果有的话)来访问从标准C#类访问代码隐藏代码中声明的对象。
Edit2:我删除了OdbcConnection对象,以便集中精力解决实际问题:如何在位于\ App_Code中的C#类的代码隐藏文件中引用一个对象?
答案 0 :(得分:0)
该连接属性可以作为
访问_Default.connection
来自你的班级。
除此之外,这似乎不是一个好方法。使用静态连接对象存在问题 - 您将遇到线程问题,并且实际声明连接似乎是一个不好的地方。您可能需要考虑将连接对象重构为实际的类,并让您的页面访问它,而不是相反。
答案 1 :(得分:0)
我和womp在一起。此外,OdbcConnection
实现IDisposable
。将其静态化和公开化可能会使它成为一场噩梦。
答案 2 :(得分:0)
坏主意使用静态连接对象。
您将定期丢失连接,并且难以调试。
相反,请查看企业库数据访问块并利用自动连接池。这将是您可以对数据库性能进行的最大改变。
它非常易于使用,并且可以让您更轻松地调用存储过程等,同时提供更好的性能。
有关using the Data Access Block of the Enterprise Library的更多信息,请参阅此链接。
以下another link可帮助您入门。这是a link to the download page
答案 3 :(得分:-1)
问题是您要向APP_Code文件夹添加类。通常,这些不是与网站一起编译的,而是编译成自己的dll,由网站dll引用。
一般来说,我所做的,因为我讨厌这个小小的警告,是在网站项目中创建一个名为Code的文件夹,并使用它而不是App_Code文件夹。
出于好奇,您使用的是哪个版本的Visual Studio?