【问题标题】:User Control cannot be accessed by another CS file其他 CS 文件无法访问用户控件
【发布时间】:2011-05-24 12:41:34
【问题描述】:

有一个UserControlA 在我加入一个项目时已经开发好了。它在一个项目中,我将称之为MyProjectWeb,它的命名空间是MyProjectWeb.Common

namespace MyProjectWeb.Common
{
    public partial class UserControlA : System.Web.UI.UserControl
    {

...

还有另一个 WorkFlowManager 项目包含一个访问此 UserControl1 的类文件。

MyProjectWeb.Common.UserControlA myUserControlA = (MyProjectWeb.Common.UserControlA)WizardControl.FindControl("TabContainer5$tpSomething$UserControlID");

注意:WorkFlowManager 和 MyProjectWeb 在同一个解决方案中。

这完全没问题。现在我想创建另一个 UserControl,即 UserControlB。

我遵循完全相同的事情。

namespace MyProjectWeb.Common
{
    public partial class UserControlB : System.Web.UI.UserControl
    {

但令我惊讶的是,我无法在 WorkFlowManager 的同一代码文件中创建 UserControlB 的实例。 MyProjectWeb.Common 命名空间甚至不包含 UserControlB。当我编译时,我显然得到了一个
The type or namespace name 'UserControlB' does not exist in the namespace 'MyProjectWeb.Common' (are you missing an assembly reference?)

为什么我可以引用来自 WorkFlowManager cs 文件的同一命名空间中的 UserControlA 但不能引用 UserControlB?如果我在 MyProjectWeb 中的任何位置访问 MyProjectWeb.Common 命名空间,我可以看到两个用户控件。在哪里查找错误?

我正在使用带有 ASP .NET 2.0 的 Visual Studio 2005

【问题讨论】:

    标签: asp.net user-controls namespaces


    【解决方案1】:

    我必须查看项目才能确定,您在上面所说的内容并不足以告诉我足够的信息。

    快速的想法:

    • 确保 UserControlB.cs 实际上在正确的项目中。
    • 确保针对构建类型将 UserControlB.cs 标记为“编译”。
    • 确保 UserControlB 实际上是“B”而不是“A”,因为它们是不完整的,拼写错误可能会导致它们组合在一起。
    • 那些用户控件是“部分”的,您是否也复制了另一部分?
    • 确保 Web 项目没有任何错误,这可能是项目未正确构建,并且您遇到的错误是由于程序集过时造成的。
    • 清理 + 重建。手动删除 bin 和 obj 目录。

    【讨论】:

      【解决方案2】:

      这将取决于 WorkFlowManager 项目如何引用 MyProjectWeb dll。如果两个项目都在同一个解决方案中,那么它应该是一个项目参考,但您需要验证它。如果引用了 dll 文件,那么您需要查看引用文件的确切存储位置 - 我的猜测是 WorkFlowManager 项目正在引用 MyProjectWeb dll 的私有副本重建 MyProjectWeb 时显然不会更新。

      【讨论】:

      • WorkFlowManager 正在引用一个旧的 dll 文件,就像你说的那样。 :) 但我的问题是 Web 项目不会创建 dll 文件吗?如果是,在哪里可以找到最新更新的 dll 文件?
      • @Ranhiru,Web 应用程序项目将创建 dll 文件 - 它们将位于您的 Web 项目根目录下的 bin 目录中。
      • 非常感谢 :) WorkFlowManager.csproj 文件引用了错误的 dll 文件。从 VS 2005 中删除引用并重新添加正确的 dll 仍然保持引用相同的 DLL!不得不手动编辑 csproj 文件。谢谢大家!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多