「MediaLinkPrefix」はweb.configで変更できることを知っています。しかし、「MediaLinkPrefix」をプログラムで変更することは可能ですか? ありがとう!
2 に答える
あなたの特定の質問に答えるために。いいえ。その設定の値をプログラムで変更することはできません。
を使用Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem)
して の URL を取得しようとしている場合、MediaItem
それは を利用しており、クラスから のSitecore.Resources.Media.MediaProvider
値を取得しています。そのプロパティには「セッター」がありません。さらに、そのプロパティの値は実際には から取得されます。これもセッターを持たず、構成ファイルから直接取得されます。MediaLinkPrefix
Sitecore.Resources.Media.MediaConfig
Sitecore.Configuration.Settings.Media.MediaLinkPrefix
これMediaManager
は、カスタム実装と交換できないと私が信じている静的クラスです。また、 とは異なり、LinkManager
はMediaManager
を使用するようにハード コードされているSitecore.Resources.Media.MediaProvider
ため、カスタム プロバイダを作成することもできません。
これを行うには、独自の実装を作成し、セクションSitecore.Links.LinkProvider
の下の web.config に設定します<linkManager>
。
正確な実装はわかりませんが、からクラスを継承しSitecore.Links.LinkProvider
て GetItemUrl() メソッドをオーバーライドできます。次に、クラスを LinkManager として使用するように構成します。