用户控制不同项目中的程序集?

时间:2011-09-09 15:10:17

标签: asp.net user-controls

有没有人举例说明如何在程序集中存储用户控件以便在多个项目中重用?

我使用UserControls制作了一个程序集,但是当我尝试注册程序集时遇到了很多麻烦。最后它工作但当我尝试访问一个事件时,我遇到了错误“对象引用未设置为对象的实例”,

非常感谢。

4 个答案:

答案 0 :(得分:0)

用户控件不能在没有太多痛苦的情况下在项目中重复使用。也就是说,.ascx文件必须可用于每个引用项目,而不仅仅是程序集。这使得更新和部署变得困难。可能,但非常困难,具体取决于您的环境。

最好的办法是使用服务器控件创建一个新的程序集。主要区别在于服务器控件是100%代码,可以跨项目轻松传输。这意味着您无法通过将它们拖放到设计图面上来创建复合控件。但是,您可以完全控制发出的html,并且可以通过引用程序集将控件添加到其他项目。

有关创建自定义服务器控件的演练,请参阅:http://msdn.microsoft.com/en-us/library/yhzc935f.aspx

答案 1 :(得分:0)

除了@Chris提供的唯一其他选项是你可以找到一个实用程序(我知道它存在,因为我知道使用它的人)将包含UC的项目合并到许多子项目中。基本上它是代码重复,但你只需要修改一个代码库。

答案 2 :(得分:0)

看一下这篇文章:

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

似乎需要大量工作才能让它运行,但这是可能的。另一种选择是将用户控件转换为自定义服务器控件,如下所述:

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

答案 3 :(得分:0)

非常感谢你们的答案和时间。我认为我将继续在我的所有项目中处理代码,因为这太复杂了,我在MSDN中发现这篇文章http://msdn.microsoft.com/en-us/library/aa651710%28VS.71%29.aspx基本上说我们必须在每个应用程序中单独复制一份,否则我必须使用“Web自定义控件”,我的想法是重用那些用户控件而不是重写它们。现在我必须找我的老板并杀了他给我这个任务,让我浪费3天这个问题!! ;) 非常感谢Chris编辑我的问题,有时我的英语很糟糕。