最近、私のソリューションに奇妙なことに気づきました。プロジェクトでは常にルート名前空間を空のままにします。次に、ページの継承ディレクティブに名前空間を含め、コードビハインドで名前空間句を使用して、すべてを通常どおりに記述します。すべてが期待どおりに機能しました。
現在、プラグイン指向プログラミングを経験しており、VirtualPathProviderを使用しています。forums.asp.netの記事にある標準クラス。何が起こったのかというと、VirtualPathProviderはプラグインプロジェクト(名前空間MEFTestPlugin1 pEx。)に埋め込まれたページを解決できず、名前空間がない場所にあることがわかりました。
間違った例:〜/ Plugins / MEFTestPlugin1.dll / MEFTestPlugin1.Default.aspx
見つかりました:〜/ Plugins / MEFTestPlugin1.dll / Default.aspx
そのため、プロジェクトのルート名前空間に通知する必要があり、最初のURLが機能しました。しかし、その後、コードビハインドは見つかりませんでした。
だから私はついに2つの有効な組み合わせだけが次のようになっていることを発見しました:
<%@ 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
pageディレクティブのdouble名前空間に注意してください。
だから、それは私のすべてのソリューションとプロジェクトで起こっていて、私は知りませんでした。私がダウンロードするソリューションの例では、アセンブリとルートの両方の名前空間が通知され、名前空間がコードビハインドで定義されていますが、それらは正常に機能します!!
何が問題になるのか誰か知っていますか?確かに私はソリューションの構成で見逃したものです...または私のすべてのものがVBであるという事実!!?? 私のソリューションは以前のバージョンからVS2010にアップグレードされています。その事実が問題になるのでしょうか?
ありがとう。