0

問題は、ContentItemを作成するたびに、ローカライズされたバージョンも作成したいということです。ローカライズされたバージョンは、元のバージョンと同じである必要がありますが、いくつかのローカライズを行います。したがって、基本的に、指定されたタイプのContentItemを作成するたびに、そのコピーを作成してローカリゼーションの変更を行い、元のContentItemをローカライズされたContentItemのLocalizationPart.MasterContentItemとしてマークしてから、アイテムを永続化します。

最初に、IContentHandler.Createdメソッドが呼び出されたときに、元のアイテムのコピーを作成しようとしました。問題は、コントローラーがまだアイテムを「TryUpdate」していないため、データが不足していることです。アイテムを手動で更新するために、コントローラーにアクセスできないようです。

また、コントローラーがContentItemをTryUpdate()してから、他のIContentHandlerメソッドのいくつかを介して既に更新されたアイテムにアクセスするのを待つこともできません。

また、新しく作成されたContentItemを永続化することは、WorkContextで実行される最後の可能性があるため、要求スレッドが非常に停止するまでDBにクエリを実行できません。

したがって、作成中のContentItemをコピーし、そのコピーを別のアイテムとして保持する方法についての洞察は素晴らしいでしょう。

4

1 に答える 1

1

IContentHandler.Publishedメソッドで更新されたContentItemにアクセスできました。ここでの不便な点は、ContentItemが「公開」されるまでメソッドが呼び出されないことです。ただし、私のシナリオでは、これらのいずれも(元のContenItemとローカライズされたContentItem)のいずれか、または両方を表示するため、これは実際には問題ではありません。

于 2012-11-29T22:54:47.873 に答える