ASP.NET テンプレート (.aspx) 分離コード クラスから名前空間を取得しようとしています。コード ビハインド ファイルには、次のようなものが含まれています。
namespace MyTopNamespace.SubNamespace
{
public partial class PageClass : System.Web.UI.Page
{
// ...
}
}
PageClass
そして、このインスタンスを次のメソッドに渡します。
private static string GetNamespace(Page page)
{
const string desiredPart = "MyTopNamespace";
if (page == null)
{
throw new ArgumentNullException("page");
}
string pageNamespace = page.GetType().FullName;
// For debugging
string pageAssembly = page.GetType().Assembly.FullName;
string pageAsmQualified = page.GetType().AssemblyQualifiedName;
if (!pageNamespace.Contains(desiredPart) &&
!pageAssembly.Contains(desiredPart) &&
!pageAsmQualified.Contains(desiredPart))
{
throw new ApplicationException(string.Format(
"Unexpected namespace or assembly: \n\n'{0}'\n'{1}'\n'{2}'",
pageNamespace, pageAssembly, pageAsmQualified));
}
// Remaining implementation ...
}
例外出力:
予期しない名前空間またはアセンブリ:
「ASP.pageclass_aspx」
「App_Web_pageclass.aspx.cdcab7d2.v4dudq3x、バージョン = 0.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null」
「ASP.pageclass_aspx、App_Web_pageclass.aspx.cdcab7d2.v4dudq3x、バージョン = 0.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null」
に何が起こったMyTopNamespace
のですか? リフレクションを使用して型から取得できますか?