問題タブ [dynamicobject]
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.
.net - DynamicObject 経由で void メソッドを実装した場合の結果の値
動的メソッドバインディングを実装するためにオーバーライドTryInvokeMember
する例を見ています。DynamicObject
サインは以下の通り
明らかresult
に、呼び出し元に結果を返すために使用されます。
TryInvokeMember
out パラメーターなしのオーバーロードがないためresult
、このメソッドは void メソッドも処理する必要があると思います。その場合、何result
を設定するべきかについてのガイドラインはありますか?
DynamicObject
null へのセットのデフォルトの実装でresult
あり、それが私のデフォルトの選択でもありますが、例でこれについての言及を見つけることができませんでした。これに関するガイドラインはありますか?結果がどうなるかは重要ですか?
inheritance - DynamicObject を継承するクラスからの継承
C# 4.0 の動的オブジェクト モデルを試しています。
DynamicObject から継承する「Block」という名前の抽象クラスを作成しました。TryGetMember と TrySetMember をオーバーライドします。
さらに、「Block」を継承する「Brush」という名前の使用可能なクラスを作成しました。動的に使用できるようにしたい。
しかし、そこから動的オブジェクトを作成し、ランタイムにバインドされたメンバーにアクセスしようとすると、メンバーが存在しないという例外が表示されます。抽象親クラスのオーバーライドされた TryGetMember または TrySetMember メソッドが呼び出されません。
この動作は予期されるものですか?
ありがとうございました!
wpf - 自動列生成で DynamicObject を DataGrid にバインドしますか?
私はまだ DynamicObjects を試しています。ここで、いくつかの情報が必要です。DynamicObject から継承するオブジェクトを (Silverlight ではなく) WPF DataGrid にバインドしようとしています。
通常は実行時に生成されるオブジェクトの使用可能なパブリック プロパティから DataGrid が自動的に列を作成するようにするにはどうすればよいですか? それは実際に可能ですか?
c#-4.0 - C# 4.0 Dynamic vs Expando... どこに適合しますか?
私は、C# 4.0 に付属するすべての新しい利点を学ぼうとしています。DynamicObject
とExpandoObject
タイプの違いがよくわかりません。DynamicObject
たとえば、Python スクリプトから変数にアクセスする場合やExpandoObject
、COM/Office オブジェクトと対話する場合に使用されるようです。私は正しいですか?それらの使用の違いは何ですか?
c# - ExpandoObject、DynamicObject、dynamic の違い
とSystem.Dynamic.ExpandoObject
の違いは何ですか?System.Dynamic.DynamicObject
dynamic
どのような状況でこれらのタイプを使用しますか?
c# - エンティティ オブジェクトにプロパティを動的に追加することはできますか?
実行時にエンティティ フレームワークによって生成されたクラスにプロパティを追加することは可能ですか? DynamicObject から継承する POCO クラスでは成功していますが、エンティティ クラスで同じことをしようとすると、「[クラス名] の部分宣言では異なる基本クラスを指定してはなりません」というエラーが表示されます。
c# - 動的オブジェクト解決を他のインスタンスに委譲する
私は現在、.NET 2.0 アプリケーションで IronPython をホストしています。
プラグイン インスタンスによってインスタンスを「拡張」できるクラスを (C# で) 作成したいと考えています。つまり、インスタンスで解決できない各メンバー アクセスは、そのメンバーを提供する適切なプラグイン インスタンスに転送する必要があります。私のオブジェクトは、それらのプラグイン インスタンスを含むプライベート コンテナを保持します。
AFAICS、そこに行く方法は、DynamicObject から派生することです。これまでの最初のステップは簡単で、Python コードがインスタンスの「不明な」メンバーを使用するたびに TryGetMember が呼び出されました。また、Python コードから使用できるオブジェクトとデリゲートを返すこともできました。
しかし、どういうわけか、DLR を使用してプラグイン インスタンスで「サブサーチ」を実行しようとしたときに行き詰まりました。G. IronPython が期待する方法で、プラグイン インスタンスのメソッドまたはプロパティを返します。
どんなヒントでも大歓迎です!
ありがとう!
編集:私の最初の質問は十分に明確に定式化されていませんでした。申し訳ありません。ここでいくつかのポイント:
- ソリューションはプレーンな .NET 2.0 で実行する必要があり、.NET 3.5 または 4.0 は許可されていません。
- プラグイン リストはインスタンスごとです (つまり、各インスタンスは、異なるが不変のプラグイン オブジェクトのリストを持つことができます)。
- プラグイン オブジェクトは、すべてのパブリック メンバー (または少なくともメソッドとプロパティ) がマップされたプレーンな C# オブジェクトである必要があります。
- 衝突検出は重要ではありません。
再度、感謝します。
c# - DynamicObject プロパティのループ
DynamicObject タイプを理解しようとしています。この MSDN の記事は、DynamicObject の作成方法と使用方法が非常に簡潔で明確であることがわかりました。
http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx
この記事には、DynamicObject から継承する単純な DynamicDictionary クラスが含まれています。
ここで、動的に作成された DynamicObject プロパティを反復処理します。
明らかにそれはうまくいきません。DynamicObject から継承するすべての種類の既存のオブジェクトに対してこれを使用する方法を実際に学ぼうとしているので、DynamicDictionary クラスを変更せずにこれを行う方法を学びたいと思っています。
リフレクションは必要ですか?私は何かが欠けているに違いない...
python - DLRとパフォーマンス
手動で指定した多数の計算を可能な限り高速に実行するWebサービスを作成するつもりであり、DLRの使用を検討してきました。
これが長い場合は申し訳ありませんが、お気軽にざっと目を通し、一般的な要点を理解してください。
計算を非常に簡単に指定できるため、IronPythonライブラリを使用しています。私の作品のラップトップは、次のことを行うと、毎秒約40万回の計算のパフォーマンスを提供します。
DynamicValueは、事前に構築された配列(実行時にシードおよび構築されたもの)から乱数を返すクラスです。
同じことを行うためにDLRクラスを作成すると、はるかに高いパフォーマンスが得られます(1秒あたり約10,000,000回の計算)。クラスは次のとおりです。
次のようにして、同じ方法で呼び出され、テストされます。
ar1とar2が事前に作成されている場合、実行時にシードされた乱数の配列。
この方法では速度は素晴らしいですが、計算を指定するのは簡単ではありません。基本的に、独自のレクサーとパーサーを作成することを検討していますが、IronPythonには必要なものがすべて揃っています。
IronPythonはDLRの上に実装されているので、はるかに優れたパフォーマンスを得ることができると思っていました。また、私が得ているものよりも優れたパフォーマンスを実現できました。
私の例はIronPythonエンジンを最大限に活用していますか?それから大幅に優れたパフォーマンスを引き出すことは可能ですか?
(編集)最初の例と同じですが、C#のループを使用して、変数を設定し、Python関数を呼び出します。
ここで、pysはpyのScriptScopeであり、args1は事前に作成されたランダムなdoubleの配列です。この例は、Pythonコードでループを実行し、配列全体を渡すよりも実行速度が遅くなります。
php - PHP動的クラス継承
実行することで実行時にクラスを生成できることを知っています
このように私は使用することができます
$obj を既存のクラスから継承させたい場合はどうすればよいでしょうか?
私が達成したいこと: 私は github ( https://github.com/balanza/paris ) で paris プロジェクトをフォークしています。アクティブレコードクラスです。空であっても、すべてのオブジェクトに対してクラスを宣言する必要があるのだろうか。
この退屈なことを避けるために、動的オブジェクトを使用する可能性があると思います。