問題タブ [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.
c# - リフレクションを使用して構造体インスタンスにプロパティを設定する方法はありますか?
構造体にプロパティを設定するコードを書き込もうとしています (構造体のプロパティであることが重要です) が失敗しています:
高さの値 (デバッガーによって報告される) は、何にも設定されず、デフォルト値の 0 のままです。
私は以前にクラスについて多くの反省を行ってきましたが、これはうまくいきました。また、構造体を扱う場合、フィールドを設定する場合は FieldInfo.SetValueDirect を使用する必要があることは知っていますが、PropertyInfo に相当するものは知りません。
c# - C# - FieldInfo と PropertyInfo は不変または可変ですか?
基本的に、私は次のものを持っています:
FxCop は、メンバーが変更される可能性があるため、変更可能な場合はフィールドを読み取り専用にするべきではないと私に訴えています。FieldInfo および PropertyInfo は不変または可変です。基本的に、このメッセージを抑制できますか?
c# - これはインデックス付きのプロパティですか、そうですか、それともニアですか?
別の問題をデバッグするために、ViewStateなどの暗号化/復号化に使用されている現在のmachineKeyを取得しようとしています。(私のアプリはサーバーファームにあり、各サーバーとアプリケーションのmachine.configとweb.configにマシンキーが設定されているため、一部のリソースが適切に復号化されていない問題をデバッグしようとしています。実験中です。これにより、暗号化に使用されているものを確認できます。)コードスニペットは次のとおりです。
現状では、3行目は「オブジェクトのインスタンスに設定されていないオブジェクト参照」をスローしています。これは、おそらく2番目のnullパラメータを正しく設定していないことを意味します(プロパティにはインデックスを付ける必要がありますよね?)。
ただし、machineKeyのValidationKeyプロパティのParameterInfoは、長さがゼロで返されます(したがって、プロパティはインデックス付けされませんよね?)。
http://msdn.microsoft.com/en-us/library/b05d59ty(v=VS.90).aspx
私がここで見落としていることが明らかにあり、これを見るのに2番目の目が欲しいです。助言がありますか?
c# - リフレクション - プロパティの属性名と値を取得
私はクラスを持っています。Name というプロパティを持つ Book と呼びましょう。そのプロパティには、それに関連付けられた属性があります。
私の主な方法では、リフレクションを使用しており、各プロパティの各属性のキーと値のペアを取得したいと考えています。したがって、この例では、属性名に「Author」、属性値に「AuthorName」が表示されることを期待しています。
質問: Reflection を使用してプロパティの属性名と値を取得するにはどうすればよいですか?
c# - PropertyInfo を使用して、カスタム インデクサーでラッパー クラスに値を割り当てる
PropertyInfoを介して値を割り当てる必要があります。
プロパティのタイプがカスタム クラス (同じテキストの複数の言語バージョンを含むように設計された辞書のラッパー) である場合、いくつかの問題が発生します。
次のようになります。
そう; これで、このPropertyInfoオブジェクトと、デフォルトの言語コードを割り当てたい文字列値ができました。
これは例外をスローします。
SetValueの最後の引数は、コレクション インデックスを意図しており、カスタム インデクサーでは機能しないと思います。
効果的に私がやろうとしていることは、明らかに次のとおりです。
しかし、msProperty という名前しか与えられていないため、リフレクションを使用しています。
これまでのところ、文字列値を MultilingualString に変換できる暗黙の演算子を (MultilingualString クラス内に) 実装することを考えてきましたが、そのアプローチにはいくつかの問題があります。この静的演算子には、デフォルトの言語コードが何であるかを「知る」方法はほとんどありません。
リフレクションによって目標を達成できますか?
c# - .NET PropertyInfo.SetValue がコマンドを無視しているように見える
トピックが示唆しているように、PropertyInfo.SetValue に問題があります。要点を説明するために、ここに私の例を示します。私は独自のクラスを作成しましたが、その主なものはプレゼンテーション オブジェクトです。
}
次に、これを行います:
これはあまり論理的/経済的ではないように見えますが、実際の問題の本質を示しています。つまり、次の呼び出しを行った後、プレゼンテーション オブジェクトの可視性 (および link.Visible の値) が変更されないのはなぜですか。
この作業を行うために他に何をすべきかわかりません...どんな助けも大歓迎です。
さらに興味深いことに、プロパティ Enabled は期待どおりに動作します...
Visible は実際には ToolStripDropDownItem 基本オブジェクトのプロパティであるのに対し、 Enabled は ToolStripDropDownItem の「直接」プロパティであるという事実に関連している可能性がありますか?
c# - PropertyInfo からオブジェクトのプロパティにアクセスするにはどうすればよいですか?
オブジェクトのプロパティを foreach して PropertyInfo になった場合、オブジェクトの実際のプロパティにアクセスするにはどうすればよいですか?
c# - プロパティに関連付けられた属性の値を取得するために、拡張メソッドをクラスプロパティに追加できますか?
属性が割り当てられたクラスがいくつかあります。私が最も興味を持っているのは、FieldLength.MaxLength値です。
FieldLength属性のMaxLength値を返すために、クラス内のプロパティに何らかの拡張メソッドを記述できるかどうかを知る必要がありますか?
例えば。次のような書き方がしたいのですが…</p>
c# - PropertyInfo SetValue 型変換
UniversalConverter メソッドに問題があります。データベースから受信した行は、エンティティに転送する必要があります。したがって、row[pi.Name] はエンティティ タイプに変換する必要があります。これを実行する方法は?
c# - 反射のあるプロパティの背後にある「オブジェクト」に到達するにはどうすればよいですか?
リフレクションによってプロパティの背後にあるオブジェクトを取得する方法はありますか?
プロパティの動的設定を管理しようとしています。
例:
上記のコメント部分にさらにどの行を追加すればよいですか?
ありがとう!