問題タブ [glass-mapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF と Castle ライブラリ (Glass Mapper)
こんにちは、私はwebHttpEndpointBehavior
Sitecore 6 で WCF サービスを利用しており、Glass Mapper を使用してアイテムを読み取ります。Glass Mapper は Castle ライブラリに依存しています。
それはうまくいっていますが、私は契約のようないくつかの方法を持っています:
クラスのリストを JSON 形式で返そうとすると、SvcTraceViewer.exe を使用してサービスをデバッグしているときに、次のエラーが見つかりました。
パラメータ :GetFamilyShadesResult をシリアル化しようとしてエラーが発生しました。InnerException メッセージは、「Type 'Castle.Proxies.ShadeProxy' with data contract name 'ShadeProxy: http://schemas.datacontract.org/2004/07/Castle.Proxies ' は想定されていません。DataContractResolver の使用を検討するか、既知の型のリストに静的に認識されていない型を追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加します。詳細については、InnerException を参照してください。
この問題を解決するにはどうすればよいですか? Castle.Proxies.ShadeProxy
は Castle の下の動的クラスであり、使用できません KnownTypeAttribute
。
実際、JSON.net ライブラリを作成して結果を文字列として返すと、すべて正常に動作します。
sitecore - GlasswithSitecoreの画像リスト
SitecoreのORMとしてGlassライブラリを使用しています。画像のリストを含む画像フィールドがあります。.NETコードからこれにアクセスしたいので、次のようなフィールドイメージを持つ部分クラスを作成しました。
しかし、これをロードしているときにエラーが発生します。
一方、追加のコードを記述せずに、Glassを介して単一の画像にアクセスできます。
誰かがこれを修正するために何かを提案できますか?
sitecore - Sitecore Glass Mapper: インターフェイスまたは具象クラスの属性?
Glass マッパーは初めてで、Sitecore プロジェクトで使用したいと考えていました。チュートリアルを見ると、Sitecore が許可する深い継承を設定する方法の詳細な例がないことに気付きました。Web をブラウジングしていると、インターフェースに属性を配置する作業を行っている人や、具象クラスに属性を配置している人がいることに気付きました。これらの例のいずれも、そうする正当な理由を説明していませんが、疑問が残ります:どちらが正しい使用法であり、どちらか一方を行うことの影響は何ですか?
次の点を考慮してください。
テンプレート: コンテンツ (タイトル、本文の 2 つの単純なフィールドを追加するフィールド セクション テンプレート) このテンプレートは、多くのテンプレートによって直接的および間接的に継承されます。
ここで、サブレイアウトの 1 つでこのセクションのみを使用します。これは一種のより一般的なコントロールであるため、実行する必要がありGetCurrentItem<Content>
ますGetCurrentItem<IContent>
。
個人的にGetCurrentItem<IContent>
は、「コンテンツ セクションをサポートしている場合は現在のアイテムをください」と尋ねているように感じられるので、より直感的だと思いますコンテンツ アイテムは作成されません)
sitecore - Glass Mapper v2 デフォルト言語にフォールバックする方法
プロジェクトでグラスマッパー v2 を使用しています。Glass Mapper はうまく機能していますが、サイトに新しい言語を追加した場合、Glass Mapper は多くのプロパティを読み取ることができず、Null 参照エラーが発生します。言語がスキップされた場合にデフォルトの Sitecore 言語データを読み取るようなグラス マッパーの動作が必要です。それは本当ですか?ありがとう。
asp.net-mvc - Glass.Mapper は Sitecore 7 の MVC モデルへのリンクをサポートしていますか?
Sitecore 7 では、モデル定義アイテムを作成して my and/sitecore/layout/Models
にリンクできるようになりました (タイプとアセンブリをそれぞれにハードコーディングするのではなく)。これにより、特に名前空間を更新したり、特定のモデルを使用しているレイアウトを確認したりする必要がある場合に、管理がはるかに簡単になります。Layouts
Renderings
text
そうは言っても、実際にはフィールドであるにもかかわらず、Glass.Mapper が「モデル」フィールドをフィールドであるかのように解析しているように見えるという問題に遭遇しましたInternal Link
。これが私が得ているエラーです:
タイプ '/sitecore/layout/Models/HomeViewModel' をアセンブリ 'Glass.Mapper.Sc, Version=3.0.2.8, Culture=neutral, PublicKeyToken=null' から読み込めませんでした。
Glass が Sitecore 7 のモデルへのリンクをサポートしている場合、またはモデルへの内部リンク フィールドを解決していないと仮定するのは正しいですか?
sitecore - クエリ ベースのプロパティが設定されていないための Sitecore Glass Mapper (v3)
更新: Sitecore バージョン 7.0 を使用しています
私はこれまで Glass.Mapper.Sc を使用して成功しています。多くのモデルが正常にマッピングされています。最初のクエリ マッピングを試したところ、うまくいきません。
私は次の2つのモデルを持っています
と
チュートリアルによると、TestimonialList に Testimonial アイテムのリストが入力されることを期待する必要があります。ただし、リストは常に空です。
sitecore の Developer Tools で XPath ビルダーを使用し、次の Sitecore API を使用して、パスが有効であることを確認しました。
returnVal には、予想されるアイテムが入力されます。./*[@@templateName='Testimonial']
マッピング属性のクエリとしても試しました。
特定の Testimonial インスタンスを手動で取得して、奇妙なマッピングの問題ではないことを確認しました。
この問題は別として、Glass.Mapping.Sc と私のモデルではすべてが正しく機能しているようです。これまでのところ、 glass.lu のチュートリアルに従い、NuGet経由で Glass.Mapping.Sc をインストールしました。
github のソースを調べましたが、問題の原因となっている可能性のあるものは何も見つかりません。他の誰かがこの問題を抱えていたり、ガラスでクエリが入力されたパラメーターを正常に使用したりしましたか?
更新 (Michael の返信に続いて):
Testimonials クラスに次のプロパティを追加しました
これにより、Testimonials アイテムの直接の子である 6 つの Testimonial アイテムである AbstractModel のデータが取り込まれた IEnumerable が返されました。
私も試しました
そして同じ結果を得ました。6つの証言よりも多くのアイテムを手に入れることを期待しているので、私はそれを理解していません.
TestimonialList プロパティを削除し、新しいプロパティ Children を追加しました。このプロパティは完全に機能します
次に、resharper を使用してプロパティの名前を TestimonialList、ZYX、Blerg に変更しました。3 回とも機能しませんでした (入力されませんでした) が、名前を Children に戻すと、すべて問題ありません。変。
詳細更新 プロパティの名前が「Children」の場合にクエリが機能しているように見える理由がわかりました。うまくいかないので、予期しない結果が得られました。「Children」は、すべての Child アイテムに設定される共通のプロパティです。子アイテムはすべて Testimonials であるため、正しく入力できます。
したがって、プロパティを次のように変更しても、正しく入力されます
Glass.Mapper.Sc.Integration.DataMappers.SitecoreChildrenMapperFixture.MapToProperty_ItemHasThreeChildren_ThreeObjectsAreCreated で見られます。
orm - MissingMethodException: メソッドが見つかりません: 'System.Delegate System.Reflection.MethodInfo.CreateDelegate(System.Type)'
Glass マッパーの使用中に、Sitecore で Missing Method 例外が発生します。これは Sitecore 7 プロジェクトで機能していますが、Sitecore 6.6 プロジェクトで同じものを使用しようとすると失敗します。基になるメソッド呼び出しの問題を見つける方法がわかりません。
これは、Sitecore 6.6 と Sitecore 7.0 での .net フレームワークのバージョンの違いが原因である可能性があります。
Glass.Mapper.Sc.CastleWindsor nuget パッケージ バージョン 3.0.3.7を使用しています
また、Glass マッパーの完全なソースをどこにも見つけることができません。
sitecore - 追加のプロパティで Glass.Mapper.Sc.Fields.Image を拡張するには?
/sitecore/templates/System/Media/Unversioned/Image
テンプレートに追加されたフィールドに Sitecore メディア ライブラリの画像のクロッピング情報を保存しています。
Glass.Mapper.Sc.Fields.Image
ビューで引き続き使用できるように、複合フィールド タイプに存在する他のすべてのプロパティと共にこのフィールドにアクセスしたいと考えGlassHtml.RenderImage()
ています。
クラスから継承する最初の試みは失敗しました - マッピング動作を壊しているようです - それで、追加のプロパティでこのクラスを拡張する別の方法があるかどうか疑問に思っています?
これが私が試したことです:
c# - Glass.Mapper とインターフェイスを使用した Sitecore アイテムの作成
これはTwitter からの質問でした。
インターフェイス モデルからアイテムを作成するためのパターンは何ですか? sitecoreService.Create<T,K>(T newItem, K parent)
where is a インターフェイスを使用するにT
は、クラスを追加して新しい項目を作成する必要があります。インターフェイスから直接作成する方法はありますか?