問題タブ [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.
c# - C# (WCF) で作成されたシリアル化可能な動的オブジェクトは、VB.NET ではアクセスできません
私のソリューションでは、Web サービス (バックエンド) を C# で記述し、WCF を介して、VB.NET を使用した MVC3 Web フロントエンドであるクライアントに提供しています。ある Web サービスでは、動的オブジェクトのリストをクライアントに送信する必要があります List<SerializableDynamicObject>
。
ここで説明するソリューションを実装しました: WCF Serializaiont of DLR , Example code。C# で記述されたテスト コンソール アプリケーションでは、WCF によって提供される動的プロパティを簡単に読み取ることができます。残念ながら、VB.NET コンソール アプリケーションでプロパティの 1 つを呼び出そうとすると、最初のプロパティのエラー メッセージ「タイプ 'SerializableDynamicObject' のパブリック メンバー 'TRIP_ID' が見つかりません」が表示されます。興味深いのは、C# と VB.NET の両方で提供されるオブジェクトの動的プロパティを [ウォッチ] ウィンドウと [ローカル] ウィンドウで確認できることです。
何が問題で、これを解決する方法を誰かが私に説明できますか? ありがとう...
Web サービス コード:
WCF動的オブジェクトを読み取るC#バージョン(動作)、動的プロパティが表示され、呼び出すことができます:
WCF 動的オブジェクトを読み取る VB.NET バージョン (動作していません)
c# - ExpandoObject に値を代入できません
動的オブジェクトを試してみたところ、このコンパイルエラーが発生しました
System.Dynamic.ExpandoObject' には 'GivenName' の定義が含まれておらず、タイプ 'System.Dynamic.ExpandoObject' の最初の引数を受け入れる拡張メソッド 'GivenName' が見つかりませんでした
MSDN: ExpandoObjectを見ると、実際には別の方法で実行されました -dynamic
キーワードを使用
これについての説明は何ですか?また、キーワードmyObj
を使用せずにインスタンスに値を割り当てることは可能ですか? dynamic
あるかどうかを見ましたが.SetProperty
、ありません。
ありがとう
アップデート
dynamic
キーワードを使用する必要があることは理解しましたが、許可されている場合、この行は何に使用されますか
c# - 動的オブジェクトC#から値を読み取る
System.Web.Helpers.DynamicJsonObjectから値を読み取ろうとしています。デバッガーで値を確認できますが、それらにアクセスする方法がわかりません。私はこれを試しました
item.GetType().GetProperty("batch_id").GetValue(item, null);
しかし、デバッガーでこの応答を取得しようとすると、「item.GetType()。GetProperty( "batch_id")'isnull」
ソリューションの写真を添付しました
ありがとう、-Tesh
c# - 動的オブジェクトを使用してメソッドから異なる型を返す
別のプロジェクトの非パブリック プロパティをテストする必要がある場合、Microsoft Unit Test Wizard は Accessor オブジェクトを作成します。ユニット テスト内でヘルパー関数を作成して、すべてのユニット テスト メソッドで同じコードを繰り返さないようにしています。現在、1 つは標準のパブリック オブジェクトを使用し、もう 1 つは Accessor バージョンを使用することを除いて、ほぼ同じ 2 つのテストがあります。アクセサーは標準版をベースにしているので、ひとつの機能を持たせることができるはずです。
Generics を使用して単純なキャストを実行できると想定していました。しかし、質問を投稿した後、基になるオブジェクトを更新する必要があるなど、もっと多くの作業が必要であることがわかりました。これは、他のアプローチが存在するかどうかを尋ねたときに確認されました。動的オブジェクトが機能する可能性があることが示唆されました。私は動的オブジェクトに精通していません.誰かが私が1つの共有関数を持ち、実行時にオブジェクトを決定できるようにする例を投稿できますか?
既存の 2 つの関数は次のとおりです。
これらの単体テストは 20 個あり、実際のオブジェクトには平均 10 個のプロパティがあります。ここでは例を簡略化しました。
以下は、単体テスト API が作成するアクセサー コードです (ここでも、例を簡略化するために縮小しています)。
c# - 動的メソッド呼び出しで値とともに引数名を取得する
を実装していDynamicObject
ます。ではTryInvokeMethod
、引数 (メソッドに渡される) に加えて、使用されている場合はパラメーターの名前も必要です。
binder.CallInfo.ArgumentNames
確かに名前が提供されていることがわかりますが、それらを値に関連付けることはできません。そうする方法はありますか、それとも希望に反することを望んでいますか:
たとえば、次のような呼び出しを行うとします。
test
とtest2
、 も持っていますが、 の名前で名前がなかっsomething
たという情報を取得できません。something
test2
test
c# - タイプ'System.Dynamic.DynamicObjectをSystem.Collections.IEnumerableに変換します
MVC3でJavaScriptSerializerを使用して、json文字列を動的オブジェクトに逆シリアル化しています。私が理解できないのは、それを私が列挙できるものにキャストする方法です。以下のコードのforeach行は私の最新の試みですが、次のエラーが発生します:「タイプ'System.Dynamic.DynamicObject'を'System.Collections.IEnumerable'に暗黙的に変換できません。辞書を反復処理できるように変換またはキャストするにはどうすればよいですか? ?
c++ - C++ で動的に割り当てられた複数のオブジェクトを作成する
私よりもはるかに賢い人たちへの別の質問:
次のように Player クラスの 3 つのインスタンスを作成しようとしています。
それらのコンストラクターを以下に示します。それは本当に簡単です:
(名前とヒット率が適切に定義されていると仮定してください)
今、私の問題はこれです。個々のプレーヤーの名前を確認しようとすると、それらはすべて player3 の一種のエイリアスになっているようです
さて、この問題を回避するための最善の解決策を知りたいのですが、もっと重要なのは、なぜこのように動作するのかを理解したいということです。それはとても単純なことのようです(私のようにJavaに甘やかされています)。
また、これは学校の課題のためのものであり、動的に割り当てられたオブジェクトを使用する必要があると言われました。
どうもありがとうございました。明確にする必要がある場合はお知らせください。
編集:必要に応じて、ここに完全なファイルがあります:
PlayerTest.cpp
Player.h
c# - 動的匿名オブジェクト内のオブジェクトをカウントする (C#)
MVC WebApi コントローラーに渡す動的オブジェクト (実際には json) があります。
json オブジェクトには、 を介して別のアプリケーションからコントローラに送信される匿名オブジェクト内の複数のリストが含まれていますclient.PostAsJsonAsync("myapiurl", objectGraph)
。
MVC 側でオブジェクトを検証するために必要なことは、各リスト内のオブジェクトの数を取得することです。mydynamicobject.mylist
および個々のアイテムを介してリストに動的にアクセスできますmydynamicobject.mylist[index]
が、カウントを取得できないようですmydynamicobject.mylist
。
私がこれまでに試したこと:
- LINQ 拡張メソッド - 動的では機能しません
Enumerable.Count(mydynamicobject.mylist)
- 型を推測できない
他のアイデアはありますか?カウントは実際には動的オブジェクトで正しく利用できますbase
が、明らかにプロパティとしてアクセスできません。ヘルプ!
これは今動作します:
動的オブジェクトを送信するコード (別のアプリ):
list - カスタム オブジェクト リストは、実行時にオブジェクトを追加できず、「Nullpointer Exception」が発生します
カスタム タイプ objectlist の 1 つのリストを作成し、そのリストにいくつかのオブジェクトを追加するときに、いくつかの問題に直面しています。advertise
オブジェクト リストが 1つある
次の行以降、最初のオブジェクトを挿入した後、コードにランタイム エラーが発生します。
誰かが私を導くことができれば...
スタックトレース:-