【问题标题】:User Controls assembly in different projects?不同项目中的用户控件程序集?
【发布时间】:2011-09-12 17:32:15
【问题描述】:

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

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

非常感谢。

【问题讨论】:

  • 你能发布更多关于这次活动的信息吗?一些堆栈跟踪将受到欢迎。

标签: asp.net user-controls


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      看看这篇文章:

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-27
          • 2020-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多