1. その他の開発課題

アセンブリリゾルバスキャナー

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecoreはアセンブリリゾルバを使って実行時に型をスキャンします。型スキャンは大量のアセンブリをタイプスキャンする作業でリソースを大量に消費することがあります。このスキャンからどのアセンブリを含めるか、どのグループを除外するかを設定できます。アセンブリを除外すると起動時間を短縮できます。

アセンブリをスキャンする際には3つの異なる戦略を用いることができます。

  • Blacklist – excludedAssemblies ノードにリストされているライブラリを除くすべてのライブラリを読み込みます。名前空間: Sitecore.Web.AssembliesScanner.ExcludedAssembliesConfiguration。
  • ホワイトリスト – includedAssemblies ノードにリストされているライブラリのみを読み込みます。名前空間: Sitecore.Web.AssembliesScanner.IncludedAssembliesConfiguration。
  • 混合戦略 – ブラックリスト化していないホワイトリストアセンブリをロードします。名前空間: Sitecore.Web.AssembliesScanner.MixedAssembliesConfiguration。

カスタム戦略を作成することもできます。

アセンブリの包含・除外の設定

すべてのアセンブリ構成はconfigurationAssembliesノードの下にあります。Sitecoreが使用する戦略は、このノードの型を設定することで指定します。例えば: Sitecore.Web.AssembliesScanner.ExcludedAssembliesConfiguration, Sitecore.Web。

排除(ブラックリスト)アセンブリ

configurationAssemblies/excludedAssembliesノードで除外したいアセンブリ名のリストを指定します。excludedAssembliesリストに含まれる名前で始まるアセンブリ名はスキャンされません。

スキャンされる型を含まないと分かっている場合は、ソリューションアセンブリをリストに追加できます。

例:

Antlr3.Runtime ComponentArt CsQuery CustomFields

アセンブリの含め(ホワイトリスト)

含めたいconfigurationAssemblies/includedAssembliesノードのアセンブリ名をアセンブリ名のリストとして指定します。 includedAssembliesリストで名前で始まるアセンブリ名はスキャンされます。

例:

Sitecore.Mvc System.Web.Mvc

混合戦略

混合戦略を使って、excludedAssembliesとincludedAssembliesを同時にリストアップできます。

以下の例は、混合戦略を用いるときに何が起こるかを示しています。

例1:

Sitecore.Mvc Sitecore.

結果

.Mvcを除くすべての*Sitecore*.*アセンブリをスキャンします。

例2:

Sitecore.Mvc Sitecore.Mvc

結果

例3:

Sitecore. Sitecore.Mvc

結果

構成をパッチしてください

例えばExcludedAssembliesScanner.configのような構成をincludeファイルに追加すると、Sitecore元のファイルにあなたが指定したものを修正します:

MyTestWildCard1 MyTestWildCard2

すべてのexcludedAssemblyノードは一意なIDを持つ必要があります。

カスタム戦略を作成する

カスタム戦略を作成するには以下のステップを踏みましょう:

  1. AssembliesConfiguration抽象クラスから継承する構成クラスを作成します。
  2. このクラスの AssemblyFilter プロパティをオーバーライドします。プロパティはフィルタークラスのインスタンスを返さなければなりません。
  3. IAssemblyFilterを実装するフィルタークラスを作成し、すべてのフィルターロジックをIsAllowedメソッドに配置します。
この記事を改善するための提案がある場合は、 お知らせください!