タグ付けされた質問 「reflection」

リフレクションは、実行時にプログラムの構造や動作を観察および/または変更するプログラムの機能です。リフレクションは、サポートするプログラミング言語に依存しています。このタグを使用する場合は、使用しているプログラミング言語にタグを付けてください。


12
文字列値を使用したリフレクションによるプロパティの設定
typeの値で、Reflectionを介してオブジェクトのプロパティを設定したいと思いますstring。ですから、例えば、私が持っているとShipのプロパティで、クラスをLatitudeあります、double。 これが私がしたいことです: Ship ship = new Ship(); string value = "5.5"; PropertyInfo propertyInfo = ship.GetType().GetProperty("Latitude"); propertyInfo.SetValue(ship, value, null); そのまま、これはArgumentException: タイプ「System.String」のオブジェクトは、タイプ「System.Double」に変換できません。 に基づいて、値を適切なタイプに変換するにはどうすればよいpropertyInfoですか?

16
クラスがジェネリッククラスから派生しているかどうかを確認する
私のプロジェクトには、派生クラスを持つジェネリッククラスがあります。 public class GenericClass<T> : GenericInterface<T> { } public class Test : GenericClass<SomeType> { } Typeオブジェクトの派生元を確認する方法はありますGenericClassか? t.IsSubclassOf(typeof(GenericClass<>)) 動作しません。
309 c#  generics  reflection 

21
JavaScript関数が定義されているかどうかを確認する方法
JavaScriptの関数が定義されているかどうかはどのようにしてわかりますか? このようなことをしたい function something_cool(text, callback) { alert(text); if( callback != null ) callback(); } しかし、それは私を取得します コールバックは関数ではありません コールバックが定義されていない場合のエラー。

6
NullableタイプでConvert.ChangeType()が失敗する
文字列をオブジェクトのプロパティ値に変換したいのですが、その名前は文字列として持っています。私はこれをそうしようとしています: string modelProperty = "Some Property Name"; string value = "SomeValue"; var property = entity.GetType().GetProperty(modelProperty); if (property != null) { property.SetValue(entity, Convert.ChangeType(value, property.PropertyType), null); } 問題は、これが失敗し、プロパティの型がnull許容型の場合に無効なキャスト例外をスローすることです。これは、変換できない値の場合ではありません-これを手動で実行すると機能します(例DateTime? d = Convert.ToDateTime(value);)同様の質問がいくつかありますが、機能しません。
301 c#  .net  reflection 

11
Pythonの現在のモジュール内のすべてのクラスのリストを取得するにはどうすればよいですか?
モジュールからすべてのクラスを抽出する多くの例を見てきました。通常は次のようなものです。 # foo.py class Foo: pass # test.py import inspect import foo for name, obj in inspect.getmembers(foo): if inspect.isclass(obj): print obj 驚くばかり。 しかし、現在のモジュールからすべてのクラスを取得する方法を見つけることができません。 # foo.py import inspect class Foo: pass def print_classes(): for name, obj in inspect.getmembers(???): # what do I do here? if inspect.isclass(obj): print obj # test.py import …

30
関数のパラメーター名/値を動的に取得するにはどうすればよいですか?
関数の関数パラメーター名を動的に取得する方法はありますか? 私の関数が次のようになっているとしましょう: function doSomething(param1, param2, .... paramN){ // fill an array with the parameter name and value // some other code } では、関数の内部からパラメーター名とその値のリストを配列に取得するにはどうすればよいでしょうか。



28
C ++アプリケーションにリフレクションを追加するにはどうすればよいですか?
C ++クラスの名前、内容(つまり、メンバーとそのタイプ)などをイントロスペクトできるようにしたいと思います。ここでは、リフレクションのあるマネージC ++ではなく、ネイティブC ++について話しています。C ++がRTTIを使用していくつかの限られた情報を提供することを理解しています。この情報を提供できる追加のライブラリ(または他の手法)はどれですか?

14
リフレクション-プロパティの属性名と値を取得します
私はクラスを持っているので、それをBookという名前のプロパティでBookと呼びましょう。そのプロパティで、それに関連付けられた属性があります。 public class Book { [Author("AuthorName")] public string Name { get; private set; } } 私のメインメソッドでは、リフレクションを使用しており、各プロパティの各属性のキーと値のペアを取得したいと考えています。したがって、この例では、属性名に「Author」、属性値に「AuthorName」が表示されることを期待しています。 質問:リフレクションを使用してプロパティの属性名と値を取得するにはどうすればよいですか?

9
変数がクラスかどうかを確認するにはどうすればよいですか?
変数がクラス(インスタンスではない!)かどうかを確認する方法を考えていました。 isinstance(object, class_or_type_or_tuple)これを行うために関数を使用しようとしましたが、クラスがどのような型になるかわかりません。 たとえば、次のコードでは class Foo: pass isinstance(Foo, **???**) # i want to make this return True. 「class」を???に置き換えてみました 、しかし私はそれclassがpythonのキーワードであることを認識しました。
236 python  reflection 

5
SwiftでのisKindOfClassの使用
私はSwiftのlangを少し拾おうとしていますが、次のObjective-CをSwiftに変換する方法を考えています。 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; UITouch *touch = [touches anyObject]; if ([touch.view isKindOfClass: UIPickerView.class]) { //your touch was in a uipickerview ... do whatever you have to do } } より具体的にisKindOfClassは、新しい構文での使用方法を知る必要があります。 override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { ??? if ??? { // your …

10
Reflectionでプライベートフィールドを見つけますか?
このクラスを考えると class Foo { // Want to find _bar with reflection [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } } 属性でマークするプライベートアイテム_barを見つけたいのですが。それは可能ですか? これは、属性を探したプロパティで行いましたが、プライベートメンバーフィールドはありませんでした。 プライベートフィールドを取得するために設定する必要があるバインディングフラグは何ですか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.