2010-01-18 78 views
1

我有一个页面,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; 
... 
    } 

我想要做的是获得“ anArray“来自在\ App_Code文件夹中声明的C#类(不绑定到页面)。我能做什么?

谢谢。

编辑:如第一条评论所述,我真的赞赏你对重构我的连接对象的建议。但是,我真正在做的是重写一个旧的PHP应用程序,以便适应基本的C#和ASP.NET,所以这段代码永远不会真正活着。所以,我仍然用一种方式(如果有的话)访问一个标准C#类中的代码隐藏代码中声明的对象。

Edit2:我删除了OdbcConnection对象以便专注于真正的问题:如何引用位于\ App_Code中的C#类的隐藏在代码隐藏文件中的对象?

+0

它已经以你写的方式访问过。但总的来说,你会使用私人领域并提供公共财产。 – fearofawhackplanet 2010-01-18 19:00:48

回答

-1

问题是你正在向APP_Code文件夹中添加类。通常,这些不是与网站一起编译的,而是被编译到他们自己的dll中,这个dll被网站dll所引用。

一般来说,我做什么,因为我讨厌那个小警告,就是在名为Code的Website项目中创建一个文件夹,并使用它代替App_Code文件夹。

出于好奇,你使用的是什么版本的Visual Studio?

+0

Visual Studio Express 2008 – 2010-01-18 19:25:41

+0

快递,啊那就是为什么:) – TJMonk15 2010-01-18 20:11:48

0

该连接属性将可以访问如

_Default.connection 

从你的类。

正如一旁,这似乎不是一个好方法。使用静态连接对象存在问题 - 您将遇到线程问题,并且它似乎是一个实际声明连接的不好的地方。你可能想考虑将你的连接对象重构为一个实际的类,让你的页面访问它,而不是其他的方式。

+0

看来我错过了一些东西,然后,因为我得到一个错误:“_Default在当前上下文中不存在”。当然,我想到了这个解决方案,但正如所说的那样,它给了我一个错误。 我并不关心你告诉我的问题,因为我在这里所做的只是重写一个旧的PHP应用程序,以便更好地使用该语言:无论如何这都不会生效。 – 2010-01-18 19:02:37

0

我与womp。此外,OdbcConnection实施IDisposable。将其变为静态并公开可用,可以使其清理成一场噩梦。

0

它的一个坏主意使用静态连接对象。

您会定期失去连接,并且很难调试。

而是查看企业库数据访问块并利用自动连接池。这将是您可以在数据库性能方面做出的最大改变。

它非常易于使用,并且会调用存储过程等,让你更容易,同时提供更好的性能。

查看此链接了解更多关于using the Data Access Block of the Enterprise Library的信息。

这里是another link这将帮助你开始。这里是a link to the download page