5

既定では、Razor によって生成されたコードに次のものが表示されます。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Helpers;
using System.Web.Security;
using System.Web.UI;
using System.Web.WebPages;

これらはどこから来たのですか?machine.config とルートレベルの web.config を調べましたが、そこにはありません。

以下を使用して、そのリストに追加できることを確認しました。

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        .... etc

そして、私は ... を使用して削除できるかもしれないと推測して<clear/>いますが、そもそもそれらがどこから来たのか知りたいです。

4

1 に答える 1

3

これらのデフォルトの名前空間は、WebPageRazorHost.csおよびMvcWebPageRazorHost.cs (Github へのリンク) でハードコーディングされているようです。

前者はコンストラクター ( を含む) にすべての名前空間を追加し、後者は(!)System.Web.WebPages.Htmlと呼ばれるメソッドを使用してそれを削除します。GetRidOfNamespace

電話をかけてみ<clear/>ましたが、悲しいことに/驚くべきことに効果がありませんでした。

NamespaceImportsの公開メンバーなRazorEngineHostので、コードで微調整できることを願っています。

于 2013-02-13T03:09:54.997 に答える