2016-10-11 10 views
0

Umbracoのコンテンツのxmlサイトマップを生成しようとしています。理想的には、UmbracoHelper.TypedContentAtRoot()などの公開アイテムに簡単にアクセスできるようにアクセスしたいと思います。 Umbracoの直接的なコントロールの外で、ダイナミックコンテンツ用のXMLサイトマップとサイトマップインデックスを生成しているサポートアセンブリの内部で、Webソリューションの外部にアクセスする必要があります。別のアセンブリでUmbraco.TypedContentAtRoot()にアクセスする

これについては、最も簡単な方法はありますか?私はさまざまなUmbracoアセンブリを参照し、すぐに利用できるものを掘り下げてみましたが、すぐに役立つものはまだ見つかりませんでした。

私は

UmbracoContext.Current.Application.Services.ContentService.GetRootContent() 

に出くわしてきたが、これはUmbracoのコンテンツはインデックスに私のために公開されたコンテンツを抽出するためにドリルダウンするために、カバーの下にどのように動作するかについてのより深い理解を必要とするようです。

誰でも正しい方向に向けることができますか?前もって感謝します!

答えて

0

作成しているDLLがumbracoサイトで使用されていると仮定すると、Umbraco.Coreパッケージへの参照がある限り、クラス内のUmbracoContent.Currentにアクセスできます。 Mivawebは述べている。

一方、完全に無関係の外部アプリケーション(実行可能ファイルなど)からUmbracoContextにアクセスしたい場合は、それをもっと難しくする必要があります。いくつかの人々がそれを働かせていますが、少しフレークです。通常、この場合、実行可能ファイルからHTTP経由で呼び出すことのできるWebAPIコントローラアクションを追加する方がよいので、サイト上でUmbracoにフルアクセスできます。

更新:

あなただけの型指定されたコンテンツにアクセスしたい場合は、使用してそれを得ることができます:

UmbracoContext.Current.ContentCache 

これはあなたのようなものを行うことができます:

UmbracoContext.Current.ContentCache.GetAtRoot(); 

キャッシュのすべてのルートコンテンツを取得します。

+0

UmbracoContent.CurrentはUmbraco 7より前かもしれませんか?私はすでにUmbracoContext.Currentにアクセスすることができます。これはあなたが意味するかもしれないものですか?しかし、公開されたコンテンツを取得するためにどのようにクエリを実行するかわかりません。何か案は?以前に公開されたコンテンツを簡単に照会することについて以前は十分にわかっていなかったので、私は質問を更新しました。乾杯。 – Gavin

+0

私の答えを更新させてください – Tim

0

あなたがUmbracoのものをやりたい別々のプロジェクトをお持ちの場合は、Nugetパッケージマネージャーに行き、Umbraco.Coreをインストールしてください。

これは、必要なUmbraco dllファイルのみをインストールします。

次に、名前空間を含めるだけで済みます。あなたは準備が整いました。

+0

あなたが意味すると思うナグットUmbracoCms.Coreパッケージが見つかりましたか?しかし、UmbracoHelperがインストールされると、UmbracoHelperへのアクセス方法はまだわかりません。何か案は? – Gavin

関連する問題