0

ReSharper(7.1.25.234)は、レジスタディレクティブを追加するときに間違ったことをします。

  1. 作成/Controls/ComplexField.ascx
  2. APageWithABunchOfFields.aspx、新しいコントロールを参照してください。

    <%@ Page Title="A page with a bunch of fields" Language="C#" MasterPageFile="~/Layouts/Site.Master" %>
    <myproj:ComplexField runat="server" />
    
  3. 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.ascxReSharperが引き起こす問題は、ページが読み込まれたときにASP.NETがファイルを実行しないことです。

これはReSharperのバグ/欠落機能ですか、それともRegisterディレクティブの理解に関する問題ですか?

4

0 に答える 0