【问题标题】:Strange behaviour in namespace命名空间中的奇怪行为
【发布时间】:2012-08-26 03:05:25
【问题描述】:

最近在我的解决方案中发现了一件奇怪的事情。 我总是在我的项目中将根命名空间留空。然后,我像往常一样编写所有内容,包括页面的继承指令上的名称空间,并在后面的代码中使用子句名称空间。一切都按预期进行。

现在我正在体验面向插件的编程,并且我正在使用 VirtualPathProvider。可以在 forums.asp.net 文章中找到的标准类。 发生的事情是 VirtualPathProvider 无法解析插件项目中的嵌入页面(命名空间 MEFTestPlugin1 pEx。),我发现那里没有命名空间。

错误:~/Plugins/MEFTestPlugin1.dll/MEFTestPlugin1.Default.aspx

找到:~/Plugins/MEFTestPlugin1.dll/Default.aspx

所以我不得不通知项目中的根命名空间,然后第一个 url 起作用了。 但是后来没有找到代码隐藏。

所以我终于发现只有两个有效的组合是:

<%@ Page Title="" Language="vb" AutoEventWireup="false"  CodeBehind="Default.aspx.vb" Inherits="MEFTestPlugin1._Default" %>

Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Write("Code-Behinds Worky")
    End Sub
End Class

或者

<%@ Page Title="" Language="vb" AutoEventWireup="false"  CodeBehind="Default.aspx.vb" Inherits="MEFTestPlugin1.MEFTestPlugin1._Default" %>

Namespace MEFTestPlugin1
    Public Class _Default
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Response.Write("Code-Behinds Worky")
        End Sub
    End Class
End Namespace

注意页面指令中的双重命名空间。

所以这发生在我所有的解决方案和项目中,而我并不知道。 我下载的任何示例解决方案都通知了程序集和根命名空间,并在代码隐藏中定义了命名空间,但它们工作正常!!

有谁知道可能是什么问题?当然是我在解决方案配置上错过的东西......或者我所有的东西都是VB的事实!!?? 我的解决方案从以前的版本升级到 VS2010。这个事实可能是问题所在吗?

谢谢。

【问题讨论】:

    标签: asp.net vb.net namespaces projects-and-solutions


    【解决方案1】:

    嗯,发现这是与 VB 命名空间管理有关的东西,它的工作方式与 C# 不同,并且会影响 DI。 我放弃了用于区域的 MEF 和用于 IoC 和解耦的 Ninject。

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 1970-01-01
      • 2023-01-13
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2011-05-26
      相关资源
      最近更新 更多