問題タブ [propertyinfo]

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.

0 投票する
2 に答える
23029 参照

vb.net - PropertyInfo.GetValue() "オブジェクトがターゲット タイプと一致しません。"

私は初めて Reflection を掘り下げていますが、本当に行き詰まっています。私は考えられるすべてをグーグルで検索しました。私は今なりたい場所に 90% います。

リフレクションを介してカスタム クラスのプロパティの値を返そうとしています。

これが私のクラス宣言です:

リフレクションを通してクラスを見るために私が書いたクラスは、次のようになります。

結果を確認するために、property_value = propInfo.GetValue(Me, Nothing) 行にブレークポイントを設定しました。

コードを呼び出す方法は次のとおりです。

リフレクションを通じて、PropertyName と Type を確認できます。必要なのは、Property の値だけです! ブレークポイントに到達すると、TargetException が発生し、「オブジェクトがターゲット タイプと一致しません」というエラー メッセージが表示されます。今は午前 1 時で、私は大破しています。今すぐ助けていただければ幸いです。私はMSDNとGoogleを死ぬほど検索し、最後に楽しみのために検索しました;)

0 投票する
1 に答える
8573 参照

c# - 型の既定の PropertyDescriptors を取得します

PropertyGridを実装して、オブジェクト タイプの表示方法をカスタマイズしていますICustomTypeDescriptor。キーと値の単一の辞書に格納される独自のカスタム プロパティをユーザーが作成できるようにしています。これらの値のすべてを作成PropertyDescriptorsし、プロパティ グリッドで表示できます。ただし、オーバーライドメソッドPropertyGridではなく、リフレクションによって設定された場合に表示されるすべての既定のプロパティも表示したいと考えています。ICustomTypeDescriptor.GetProperties

これで、オブジェクトの型を取得してから を取得する方法がわかりましたが、これはnotGetProperties()の配列を返します。では、そのタイプのオブジェクトをオブジェクトに変換して、カスタムでコレクションに含めるにはどうすればよいでしょうか?PropertyInfoProperyDescriptorPropertyInfoPropertyDescriptorPropertyDescriptors

0 投票する
2 に答える
6837 参照

c# - リフレクション - ネストされたオブジェクトのプロパティを取得する

参照:リフレクション - 返された obj のタイプを設定しますか? いくつかのプロパティを持つオブジェクト Call Jobcard があります。そのうちの 1 つは独自のプロパティを持つ Customer という別のオブジェクトで、そのうちの 1 つは Address という別のネストされたオブジェクトです。

これら 2 つの関数は、他のオブジェクト タイプも処理します。

問題は、PropertyInfo リストが渡された childObj のリストではないため、PopulateChildObject 関数が機能しないことです。ウォッチで PopulateChildObject に渡された dataObj を見ると、属性が 0 になっています。また、PopChildObj() に渡される dataObj のタイプは、Customer ではなく System.Reflection.RuntimePropertyInfo' です。私は何が欠けていますか?

0 投票する
1 に答える
358 参照

c# - PropertyInfo サブ プロパティ

すべてのデータテーブルを見ているlinqコンテキストがあり、すべてのテーブルのフィールドのリストを取得しようとしています

それは私に各テーブルの列を提供しません。

何かご意見は?

簡単に言えば、プロパティを取得しようとしているオブジェクトの propertyInfo しかないときに、すべてのプロパティを取得しようとしています。

-ハリケーン

0 投票する
2 に答える
2843 参照

c# - プロパティを反映して属性を取得します。他の場所で定義されている場合はどうすればよいですか?

私はこのようなクラスバーを持っています:

プロパティ Bar.FooProp のみを反映する属性 [Range(0,255)] を見つける必要があります。つまり、現在解析中のクラスではなく、クラスインスタンス (.. new Foo()) でプロップが装飾されています。Infact Bar.FooProp には属性がありません

編集

インターフェイスの定義で属性を移動したので、継承されたインターフェイスを解析してそれらを見つける必要があります。Bar クラスは IFoo を実装する必要があるため、これを行うことができます。この特定のケースでは、運が良かったのですが、インターフェイスがない場合は問題が残ります...次回のために注意します

0 投票する
4 に答える
8003 参照

c# - リフレクションなどでエンティティ ID フィールドの名前を取得する方法はありますか?

エンティティの ID フィールド名 (プロパティ名) を取得しようとしていますが、可能ですか?

ユーザー user= new User(); //ユーザーはエンティティです

文字列 idField = ??????? //user.UserId

0 投票する
12 に答える
309737 参照

c# - 文字列値を使用したリフレクションによるプロパティの設定

type の値で、リフレクションを介してオブジェクトのプロパティを設定したいと思いますstring。たとえば、Shipのプロパティを持つクラスがあるとします。Latitudeこれはdoubleです。

これが私がやりたいことです:

そのまま、これは以下をスローしArgumentExceptionます:

タイプ 'System.String' のオブジェクトは、タイプ 'System.Double' に変換できません。

に基づいて、値を適切な型に変換するにはどうすればよいpropertyInfoですか?

0 投票する
4 に答える
16474 参照

c# - PropertyInfo が特定の列挙型であるかどうかを確認する方法は?

次のコードがあります。

Enumtype 、この場合はのフィールドにたどり着いたら、NameSpace.MyEnum何か特別なことをしたいと思います。SetValueデータベースからの値が「m」であり、の値Enumが「Mr」であるため、単純にできません。したがって、別のメソッドを呼び出す必要があります。知っている!レガシーシステムですよね?

PropertyInfoでは、アイテムが特定の列挙型であることをどのように判断すればよいのでしょうか?

したがって、上記のコードでは、最初にPropertyInfo型が特定の列挙型であるかどうかを確認し、そうである場合はメソッドを呼び出し、そうでない場合は単に実行を許可SetValueします。