問題タブ [idynamicobject]
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.
visual-studio-2010 - C# 4 で method_missing を実装して、実際に値を返すようにすることはできますか?
IDynamicObject に浮かんでいる 2 つのブログ投稿すべてに基づいて、C# 4 で method_missing を実装する方法を見つけようとしていました。
私がやりたいのは、リポジトリを持つビジネス ロジック レイヤーを用意することです。メソッドがビジネス ロジック レイヤーにない場合は、リポジトリを呼び出してその結果を渡すだけです。だから私はこのようなクラスを持っています:
RepositoryMetaObect では、次のように Call メソッドを実装します。
(RepositoryMetaObject コードの残りの部分はおそらく興味深いものではありませんが、ここに含めました: http://pastie.org/312842 )
私が思う問題は、Invoke の結果に対して何もしていないことです。MetaObject 自体を返すだけです。
今私がこれを行うとき:
GetByID が呼び出されますが、myCustomer のプロパティにアクセスしようとすると、ハングします。
誰でも助けてもらえますか?
完全なコードは、 https ://dl.getdropbox.com/u/277640/BusinessLogicLayer.zip からダウンロードできます。
c#-4.0 - IDynamicObject 実装は、複数のプロパティ呼び出しを無視します
IDynamicObject を C# 4 で実装し、Dictionary への単純なプロパティ getter/setter ディスパッチを行うカスタム MetaObject サブクラスを返します。ロケット科学ではありません。
私がこれを行う場合:
次に、'Joe' がコンソールに出力されます...'Name' セッターへの 2 番目の呼び出しは呼び出されません (私のカスタム ディスパッチャー コードにステップ インすることはまったくありません)。
DLR がコールサイト キャッシングを行うことは知っていますが、ここでは当てはまらないと思いました。何が起こっているか知っている人はいますか?
c# - VS.Net 2010 に System.Scripting がありません - どこで見つけられますか?
VS.Net 2010 をインストールしていくつかの新しい C# 機能を試してみました。IDynamicObject インターフェイスを使用しようとしていますが、System.Scripting 名前空間が見つからないため使用できません。これを取得するには、何をインストールする必要がありますか?
ありがとう!
c# - IDynamicObject が見つかりませんでしたか?
ここでサンプル コードを実行しようとすると: http://www.nikhilk.net/Live-Search-REST-API.aspx
私は得る:
エラー 52 型または名前空間名 'IDynamicObject' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) E:\repo\NikhilK-dynamicrest-a93707a\NikhilK-dynamicrest-a93707a\Core\DynamicObject.cs 19 43 ダイナミックレスト
プロジェクトは .net 4 を実行しています - これは標準インポートの一部であるべきではありませんか? 私は何かを逃していますか?この作業を行うにはどうすればよいですか?
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コードでループを実行し、配列全体を渡すよりも実行速度が遅くなります。
c# - C#Winformの動的自動更新(UI、グリッドへ)バインディングリスト?
これを正しく行っているかどうかさえわかりません。しかし基本的に、クラス/インターフェースから構築されたオブジェクトのリストがあります。そこから、リストをDataGridView
Windows フォーム (C#)にバインドしています。
ここでリストは、UI を自動更新する同期リストです。この場合はDataGridView
.
すべてが正常に機能するようになりましたが、リストに動的オブジェクトが必要です。つまり、オブジェクトにはデフォルトで 2 つの静的プロパティ (ID、名前) があり、実行時にユーザーが残りのプロパティを選択します。これらは、データ グリッドにバインドする必要があります。リストの更新は、グリッドに自動的に反映されます。
動的オブジェクトを使用できることは承知していますが、ソリューションにアプローチする方法を知りたいです。
現在IPersonInfo
はオブジェクトのタイプです。実行時にこのタイプの動的プロパティを追加する必要があります。
これについて手伝ってもらえますか?