ReSharper(7.1.25.234)は、レジスタディレクティブを追加するときに間違ったことをします。
- 作成
/Controls/ComplexField.ascx
で
APageWithABunchOfFields.aspx
、新しいコントロールを参照してください。<%@ Page Title="A page with a bunch of fields" Language="C#" MasterPageFile="~/Layouts/Site.Master" %> <myproj:ComplexField runat="server" />
ReSharperは
<%@ Register %>
、これにつながるディレクティブを生成することを提案します。<%@ Page Title="A page with a bunch of fields" Language="C#" MasterPageFile="~/Layouts/Site.Master" %> <%@ Register TagPrefix="myproj" Namespace="MyProject.Controls" Assembly="MyProject" %> <myproj:ComplexField runat="server" />
問題は、それが検出または実行されないことComplexField.ascx
です(ただし、ComplexField
インスタンスは構築されます)。ReSharperが生成する必要があるのは次のとおりです。
<%@ Page Title="A page with a bunch of fields" Language="C#" MasterPageFile="~/Layouts/Site.Master" %>
<%@ Register TagPrefix="myproj" TagName="ComplexField" Src="~/Controls/ComplexField.ascx" %>
<myproj:ComplexField runat="server" />
つまり、ReSharperは、ソースパスではなく名前空間によってコントロールを登録しています。ComplexField.ascx
ReSharperが引き起こす問題は、ページが読み込まれたときにASP.NETがファイルを実行しないことです。
これはReSharperのバグ/欠落機能ですか、それともRegisterディレクティブの理解に関する問題ですか?