최근 내 솔루션에서 이상한 점을 발견했습니다. 항상 프로젝트에서 루트 네임 스페이스를 비워 둡니다. 그런 다음 페이지의 상속 지시문에 네임 스페이스를 포함하여 모두 정상적으로 작성하고 코드 뒤에 네임 스페이스를 사용합니다. 모든 것이 예상대로 작동했습니다.네임 스페이스의 이상한 동작
이제 플러그인 지향 프로그래밍이 발생하고 VirtualPathProvider를 사용하고 있습니다. forums.asp.net 기사에서 찾을 수있는 표준 클래스입니다. VirtualPathProvider가 플러그인 프로젝트 (네임 스페이스 MEFTestPlugin1 pEx.)에 포함 된 페이지를 확인할 수 없어서 네임 스페이스가없는 곳에서 발견되었습니다.
잘못된 : ~/플러그인/MEFTestPlugin1.dll/MEFTestPlugin1.Default.aspx
찾았습니다 ~/플러그인/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으로 업그레이드되었습니다. 그 사실이 문제일까요?
감사합니다.