問題タブ [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 投票する
3 に答える
14665 参照

c# - 非静的メソッドには、PropertyInfo.SetValue のターゲットが必要です

さて、私はジェネリックについて学んでおり、これを実行しようとしていますが、同じエラーが表示され続けます。コードは次のとおりです。

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

c# - Silverlight の匿名型のプロパティでリフレクションが失敗する

VS 2010 で Silverlight 4 を使用していて、匿名型でリフレクションを実行しようとすると、「メソッド '...' によるメソッド '...' へのアクセスに失敗しました。」というメッセージが表示されました。これに対してさまざまな回避策を試しましたが、単純なものを見つけることができませんでした。

class.CallAnonymous("SimpleClass", "HelloFunc", new { strIn = "Boo" });

0 投票する
7 に答える
73119 参照

c# - リフレクションを使用してプロパティの文字列名を取得する

次のいずれかを取得できる豊富なリフレクションの例があります。

    1. クラス内のすべてのプロパティ

    2. 文字列名がわかっている場合は、単一のプロパティ

クラスとプロパティのインスタンスしかない場合、実行時にクラスのプロパティの文字列名を取得する方法 (リフレクション、TypeDescriptor、またはその他を使用) はありますか?

EDIT リフレクションを使用してクラス内のすべてのプロパティを簡単に取得し、各プロパティの名前を取得できることを知っています。私が求めているのは、プロパティのインスタンスを渡せば、プロパティの名前を与える関数です。つまり、class.GetType().GetProperty(myProperty) から返された PropertyInfo[] 配列から必要なプロパティを見つけて、そこから PropertyInfo.Name を取得するにはどうすればよいでしょうか?

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

c# - 最高レベル 1 のプロパティに関する考察

私は最初のレベルのプロパティを取得しようとしています。上記の例では、意図したプロパティは A と B ではなく、X と Y です。次のコードでは、すべてのプロパティ {A,B,X,Y} を取得しています。属性署名なしの解決策はありますか。

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

c# - get_PropertyName()/set_PropertyName() 対 PropertyName?

System.CodeDOMAPI を介して情報を抽出するコードを生成するために、使用しているパブリック API のアセンブリにリフレクションを使用しています。

自動生成されたコードの一部で、API アセンブリ内の型の多数のプロパティの値を参照しています。ただし、生成されたコードに実際には存在しないプロパティへの参照が発生し続けます。私Type.GetProperties()が理解していることから、パブリックプロパティのみを返す必要があるものを使用しました。

さらに調べたところ、プロパティが不足している場合、呼び出さSamplePropertyれたクラスには代わりに2つのメソッドがあり、実際のプロパティはget_SamplePropertyありませんでした。set_SamplePropertySampleProperty

何が起きてる?インテリセンスがこれらのメソッドを個別のメソッドとして扱うのに、リフレクションを通じて返されたときにプロパティとして表示されるのはなぜですか?

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

c# - プロパティがオーバーライドされたかどうかを確認するにはどうすればよいですか?

システムが非常に巨大であるため、Xamlの目的で依存したいすべてのプロパティを登録するには多くの作業が必要になるため、すべてのプロパティを登録する必要があるプロジェクトを行っています。

目標は、ツリーの最上位にあるすべてのプロパティを見つけることです。

だから基本的に

最終結果は次のようになります

このようなことをすると、プロパティを検索する方法が原因で、オーバーライドされたプロパティを受け入れたくないことに気付いた場合

たとえば、C.Property3 が見つからない場合は、C のベースタイプをチェックし、そこで見つけます。

これは私がこれまでに持っているものです。

私が欲しいのは次のとおりです。

  • オーバーライドされていない、静的でない、非公開でないパブリック プロパティ
  • プロパティの取得と設定のいずれかが許可されています
  • それらは配列またはジェネリック型ではありません
  • それらはツリーの最上位です。つまり、例の C クラスが最上位です (プロパティ リストの例はまさに私が探しているものです)。
  • それらはインデクサー プロパティではありません( this[index] )
0 投票する
2 に答える
6436 参照

c# - PropertyInfo:プロパティはインデクサーですか?

私は次のコードを持っています:

すべてのインデクサーから除外したいoriginalProperties(myVar ["key"]は"Item"という名前のプロパティとして表示されます)。

適切な方法は何ですか?

propInfo.Name == "Item"オプションではないすべてのプロパティを除外します。

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

.net - 反射と複雑なプロパティ

プリミティブで複雑なプロパティを持つオブジェクトがあります。

リフレクションによってプロパティ値を取得する必要があります。

私はこのステートメントを使用します:

わかりましたが、このような複雑なプロパティで同じコードを使用すると...

propertyInfo が null で、「MyProp2」の値を読み取ることができません。

これを行うための一般的な方法はありますか?

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

c# - PropertyInfo GetValue が再帰中にエラーをスローする

C# プログラムで実行時にオブジェクトの値を取得しようとすると、「オブジェクトがターゲット タイプと一致しません」というメッセージが表示されます。

クラス BrokerInfo のオブジェクトを渡します。このオブジェクトには Broker タイプのプロパティが 1 つあり、そのプロパティには FirstName と LastName (簡単にするためにすべて文字列) があります。

カスタムタイプを再帰的にチェックし、それらの値を取得しようとしています。私は次のようなことができます:

助けてください。

更新: leppie の助けを借りて解決できました: ここに変更されたコードがあります。

IsCustom は、型がカスタム型かどうかを確認する私のメソッドです。コードは次のとおりです。

0 投票する
5 に答える
2506 参照

c# - C#はreflection.propertyinfoをGeneric.List<>に変換します

Reflection.propertyinfo[]をgeneric.list<>に変換するにはどうすればよいですか?