命名空间中的奇怪行为

时间:2012-08-31 09:51:01

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

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

现在我正在体验面向插件的编程,而我正在使用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。这个事实可能是问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

嗯,发现这与VB命名空间管理有关,它与C#不同,影响DI。 我放弃MEF for Areas和Ninject for IoC并解耦。