問題タブ [expando]
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.
c# - ExpandoObjects を使用して、リストされたインクリメンタルに構成されたクラスをどのように置き換えることができますか?
そういう意味ではデザインパターンは使えないと思います。ケース シナリオでは、これらのプロパティと対応する getter/setter が常に定義されている基本オブジェクトがあります: (id,name,content)。それに加えて、オプションのプロパティと対応する getter/setter (comments、author、deleted) を持つオブジェクトがあります。これらのオブジェクトが、それ以上でもそれ以下でもない正確なプロパティ/メソッドを API に提供することを望みます。
1 つのアプローチは、膨大な状態を持つ 1 つのクラスにすべてを含めることです。
もう1つは複数のクラスを持つことですが、それはクラス名の肥大化を引き起こします
常に (id,name,content) と 3 つのオプション変数を持つクラスの可能な構成はすべて 2^3 であるため、デザイン パターン (できればリフレクションなし) でそれを行う方法があるかどうか疑問に思います。よりリラックスしたタイプの言語を使用したり、JSON/XML を使用したりできることはわかっていますが、それはポイントではありません:P. また、関連する部分クラス (C# から) についても詳しくありません。
私に指摘されたように、ExpandoObjectsがその方法である可能性があります。たとえば、これらを個別のクラスとして定義する必要がないように、ArticleWithComments
表現するサンプルコードを提供していただけますか?DeletedArticleWithAuthorAndComments
ありがとう
java - Liferay テーマとポートレット通信
テーマに埋め込まれたポートレットがあります。テーマがポートレットからパラメータ値を取得できる唯一の解決策は、中間データベースを使用することです。私がしたことは、ポートレットにテーブルを作成してから、テーマからこのテーブルにアクセスしようとしたことです。
ポートレットの Java コード:
テーマの速度コード:
しかし、私が得た結果は次のとおりです。
テーブル ClientTab が存在しません
これらの参照を使用してコードを開発しました。
http://myjavaexp.blogspot.com/2013/01/liferay-expando-services.html
http://www.liferay.com/fr/web/raymond.auge/blog/-/blogs/715049
liferay - liferay:BDのテーブル「expandovalue」からデータを取得するにはどうすればよいですか?
私のliferayには、ユーザーが入力するWebフォームポートレットがあります。フォームが入力されると、データはテーブル expandovalue のデータベースに保存されます
現在、そのデータを取得してポートレットに表示しようとしています。expando に関する多くのドキュメントを見つけましたが、ほとんどのドキュメントは古いバージョンの liferay に関するものであり、探しているものかどうかわかりません。expando はカスタム フィールドと私のシナリオで機能しているように見えるため、データはデフォルトのデータベース テーブルに保存されます。
データベース テーブル「expandovalue」に格納されているデータを取得してポートレットに表示するにはどうすればよいですか?
c# - プロパティ バッグのコレクションのような LINQ 匿名型の結果を ASP.NET 5 MVC ビューに渡します。
私は周りを検索し、ExpandDo を動的に使用することについて話しましたが、LINQ クエリから返されたコレクションでこれを行う方法を理解できませんでした。
データベースで 2 つのテーブル (学生と登録) の間で内部結合を行っています。
私はもう試した
そして、私が持っています
私のView.cshtmlの上部に
しかし、Web アプリケーションでコントローラーに移動しようとすると、次のエラーが発生します。
ディクショナリに渡されたモデル項目は「System.Dynamic.ExpandoObject」型ですが、このディクショナリには「System.Collections.Generic.IEnumerable`1[System.Object]」型のモデル項目が必要です。''
私も試しました:
しかし、私の見解(.cshtmlファイル)では
@Html.Raw 行で barf します
タイプ 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の例外が App_Web_index.cshtml.1bbec3a6.jtomobws.dll で発生しましたが、ユーザー コードで処理されませんでした
理想的にはワンライナーにしたいです。私の見解では、プロパティ バッグのコレクションを反復処理して、Student フィールドと Course フィールドを抽出できるようにしたいと考えています。したがって、プロパティ バッグには Student プロパティと Course プロパティが含まれ、それらのコレクションになります。私は多くの同様の投稿を見てきましたが、誰もこれを行っていません
ありがとうトーマス
c# - 存在しないプロパティにアクセスする Expando オブジェクト
私は C# で expando オブジェクトに取り組んでいますが、存在しないプロパティにアクセスするときに「Prop not found」のような定義済みの値を割り当てる方法があるかどうか知りたいですか? 私のコードは次のとおりです。Dictionary 内の不明なプロパティにアクセスすると (expandoObject としてキャストされます)、Runtimebinderexception が発生します。
では、例外を回避して上記のような値を表示する方法はありますか (Prop not found) ? ありがとう
c# - expando オブジェクトで検索する方法
このようなjsonオブジェクトを取得しました-
そして時々このような -
したがって、オブジェクトの順序は固定されていません。上記の例では、「CreatedOn」フィールドを DB に格納する必要があります。
次のコードを使用して expandoobject に変換しています -
ここで ConvertJTokenToObject -
さて、問題は、どの「ディメンション」要素に「CreatedOn」フィールドがあるかわからないことです。
これは最初のケースでうまく機能します -
しかし、そうあるべきであるように、別のケースで壊れます-
「CreatedOn」、「Status」などのフィールド名で expandoobject を検索する方法