問題タブ [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.
vb.net - PropertyInfo.GetValue() "オブジェクトがターゲット タイプと一致しません。"
私は初めて Reflection を掘り下げていますが、本当に行き詰まっています。私は考えられるすべてをグーグルで検索しました。私は今なりたい場所に 90% います。
リフレクションを介してカスタム クラスのプロパティの値を返そうとしています。
これが私のクラス宣言です:
リフレクションを通してクラスを見るために私が書いたクラスは、次のようになります。
結果を確認するために、property_value = propInfo.GetValue(Me, Nothing) 行にブレークポイントを設定しました。
コードを呼び出す方法は次のとおりです。
リフレクションを通じて、PropertyName と Type を確認できます。必要なのは、Property の値だけです! ブレークポイントに到達すると、TargetException が発生し、「オブジェクトがターゲット タイプと一致しません」というエラー メッセージが表示されます。今は午前 1 時で、私は大破しています。今すぐ助けていただければ幸いです。私はMSDNとGoogleを死ぬほど検索し、最後に楽しみのために検索しました;)
c# - 型の既定の PropertyDescriptors を取得します
PropertyGrid
を実装して、オブジェクト タイプの表示方法をカスタマイズしていますICustomTypeDescriptor
。キーと値の単一の辞書に格納される独自のカスタム プロパティをユーザーが作成できるようにしています。これらの値のすべてを作成PropertyDescriptors
し、プロパティ グリッドで表示できます。ただし、オーバーライドメソッドPropertyGrid
ではなく、リフレクションによって設定された場合に表示されるすべての既定のプロパティも表示したいと考えています。ICustomTypeDescriptor.GetProperties
これで、オブジェクトの型を取得してから を取得する方法がわかりましたが、これはnotGetProperties()
の配列を返します。では、そのタイプのオブジェクトをオブジェクトに変換して、カスタムでコレクションに含めるにはどうすればよいでしょうか?PropertyInfo
ProperyDescriptor
PropertyInfo
PropertyDescriptor
PropertyDescriptors
c# - リフレクション - ネストされたオブジェクトのプロパティを取得する
参照:リフレクション - 返された obj のタイプを設定しますか? いくつかのプロパティを持つオブジェクト Call Jobcard があります。そのうちの 1 つは独自のプロパティを持つ Customer という別のオブジェクトで、そのうちの 1 つは Address という別のネストされたオブジェクトです。
これら 2 つの関数は、他のオブジェクト タイプも処理します。
問題は、PropertyInfo リストが渡された childObj のリストではないため、PopulateChildObject 関数が機能しないことです。ウォッチで PopulateChildObject に渡された dataObj を見ると、属性が 0 になっています。また、PopChildObj() に渡される dataObj のタイプは、Customer ではなく System.Reflection.RuntimePropertyInfo' です。私は何が欠けていますか?
c# - PropertyInfo サブ プロパティ
すべてのデータテーブルを見ているlinqコンテキストがあり、すべてのテーブルのフィールドのリストを取得しようとしています
それは私に各テーブルの列を提供しません。
何かご意見は?
簡単に言えば、プロパティを取得しようとしているオブジェクトの propertyInfo しかないときに、すべてのプロパティを取得しようとしています。
-ハリケーン
c# - プロパティを反映して属性を取得します。他の場所で定義されている場合はどうすればよいですか?
私はこのようなクラスバーを持っています:
プロパティ Bar.FooProp のみを反映する属性 [Range(0,255)] を見つける必要があります。つまり、現在解析中のクラスではなく、クラスインスタンス (.. new Foo()) でプロップが装飾されています。Infact Bar.FooProp には属性がありません
編集
インターフェイスの定義で属性を移動したので、継承されたインターフェイスを解析してそれらを見つける必要があります。Bar クラスは IFoo を実装する必要があるため、これを行うことができます。この特定のケースでは、運が良かったのですが、インターフェイスがない場合は問題が残ります...次回のために注意します
c# - リフレクションなどでエンティティ ID フィールドの名前を取得する方法はありますか?
エンティティの ID フィールド名 (プロパティ名) を取得しようとしていますが、可能ですか?
ユーザー user= new User(); //ユーザーはエンティティです
文字列 idField = ??????? //user.UserId
c# - 文字列値を使用したリフレクションによるプロパティの設定
type の値で、リフレクションを介してオブジェクトのプロパティを設定したいと思いますstring
。たとえば、Ship
のプロパティを持つクラスがあるとします。Latitude
これはdouble
です。
これが私がやりたいことです:
そのまま、これは以下をスローしArgumentException
ます:
タイプ 'System.String' のオブジェクトは、タイプ 'System.Double' に変換できません。
に基づいて、値を適切な型に変換するにはどうすればよいpropertyInfo
ですか?
c# - PropertyInfo が特定の列挙型であるかどうかを確認する方法は?
次のコードがあります。
Enum
type 、この場合はのフィールドにたどり着いたら、NameSpace.MyEnum
何か特別なことをしたいと思います。SetValue
データベースからの値が「m」であり、の値Enum
が「Mr」であるため、単純にできません。したがって、別のメソッドを呼び出す必要があります。知っている!レガシーシステムですよね?
PropertyInfo
では、アイテムが特定の列挙型であることをどのように判断すればよいのでしょうか?
したがって、上記のコードでは、最初にPropertyInfo
型が特定の列挙型であるかどうかを確認し、そうである場合はメソッドを呼び出し、そうでない場合は単に実行を許可SetValue
します。