最近在我的解决方案中发现了一件奇怪的事情。我总是在我的项目中将根命名空间留空。然后,我像往常一样编写所有内容,包括页面的继承指令上的名称空间,并在后面的代码中使用子句名称空间。一切都按预期工作。
现在我正在体验面向插件的编程,并且我正在使用 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。这个事实会是问题吗?
谢谢。