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

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

3
実行時にC#プロパティを動的に追加する
これに対処するいくつかの質問があることは知っていますが、答えは通常、辞書またはパラメーターのコレクションを推奨するという方針に従っており、私の状況では機能しません。 私は、リフレクションを介して機能するライブラリを使用して、プロパティを持つオブジェクトで多くの巧妙なことを実行しています。これは、動的クラスだけでなく、定義済みクラスでも機能します。私はこれをさらに一歩進めて、これらの線に沿って何かをする必要があります: public static object GetDynamicObject(Dictionary<string,object> properties) { var myObject = new object(); foreach (var property in properties) { //This next line obviously doesn't work... myObject.AddProperty(property.Key,property.Value); } return myObject; } public void Main() { var properties = new Dictionary<string,object>(); properties.Add("Property1",aCustomClassInstance); properties.Add("Property2","TestString2"); var myObject = GetDynamicObject(properties); //Then use them like this …

4
C#のSystem.TypeとSystem.RuntimeTypeの違いは何ですか?
私は今日、いくつかのコンベンションテストを行おうとしていて、Assembly.GetTypes()何かに出くわしたときに、アセンブリ内のすべてのタイプを取得しようとしていました(を呼び出すことによって)。 System.RuntimeType:[First.Namespace.FirstClass] そのタイプをと比較しようとするときはいつでもtypeof(FirstClass)、それらは等しくありません。そのためFirstClass、ジェネリックパラメーターとして含まれているすべての型を検索しようとしても、何も見つかりません。 違いは何だSystem.RuntimeTypeとはSystem.Type? 私の問題を解決する方法はありますか?
89 c#  reflection 



12
ArrayList <Object>内の各オブジェクトのタイプを確認するにはどうすればよいですか?
文字列、数値、倍精度浮動小数点数、整数で構成されるデータベースからインポートされたさまざまな要素で構成されるArrayListがあります。リフレクションタイプの手法を使用して、各要素が保持する各データタイプを調べる方法はありますか? 参考:データの種類が非常に多いのは、これが異なるDBで実装されるように記述されたJavaコードの一部であるためです。

7
JavaにinstanceOf(Class <?> c)のようなものはありますか?
オブジェクトoがクラスのインスタンスであるCか、のサブクラスのインスタンスであるかを確認したいと思いますC。 場合たとえば、pクラスであるPoint私がしたいx.instanceOf(Point.class)ことをtrueしてもx.instanceOf(Object.class)しますtrue。 ボックス化されたプリミティブ型でも機能するようにしたい。例えば、場合xでInteger、その後x.instanceOf(Integer.class)でなければなりませんtrue。 そんなことはありますか?そうでない場合、どうすればそのようなメソッドを実装できますか?

6
別のアセンブリのクラス名からタイプを解決する
クラスの型を解決する必要があるメソッドがあります。このクラスは、次のような名前空間を持つ別のアセンブリに存在します。 MyProject.Domain.Model 私は以下を実行しようとしています: Type.GetType("MyProject.Domain.Model." + myClassName); これは、このアクションを実行しているコードが、解決しようとしているタイプのクラスと同じアセンブリにある場合にうまく機能しますが、クラスが別のアセンブリにある場合、このコードは失敗します。 このタスクを実行するためのはるかに優れた方法があると確信していますが、探しているクラスのタイプを解決するためにアセンブリを解決し、内部の名前空間をトラバースした経験はあまりありません。このタスクをより優雅に達成するためのアドバイスやヒントはありますか?
87 c#  .net  reflection 


6
リフレクションを介してnull許容プロパティのタイプを見つける
リフレクションを介してオブジェクトのプロパティを調べ、各プロパティのデータ型の処理を続行します。これが私の(縮小された)ソースです: private void ExamineObject(object o) { Type type = default(Type); Type propertyType = default(Type); PropertyInfo[] propertyInfo = null; type = o.GetType(); propertyInfo = type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Loop over all properties for (int propertyInfoIndex = 0; propertyInfoIndex &lt;= propertyInfo.Length - 1; propertyInfoIndex++) { propertyType = propertyInfo[propertyInfoIndex].PropertyType; …
83 c#  .net  reflection  nullable 


6
プロパティがクラスに存在するかどうかを確認します
私はプロパティがクラスに存在するかどうかを知りたいのですが、これを試しました: public static bool HasProperty(this object obj, string propertyName) { return obj.GetType().GetProperty(propertyName) != null; } 最初のテスト方法が合格しない理由がわかりませんか? [TestMethod] public void Test_HasProperty_True() { var res = typeof(MyClass).HasProperty("Label"); Assert.IsTrue(res); } [TestMethod] public void Test_HasProperty_False() { var res = typeof(MyClass).HasProperty("Lab"); Assert.IsFalse(res); }
82 c#  .net  reflection 

13
ネストされたオブジェクトのプロパティを取得するためのC#でのリフレクションの使用
次のオブジェクトが与えられます: public class Customer { public String Name { get; set; } public String Address { get; set; } } public class Invoice { public String ID { get; set; } public DateTime Date { get; set; } public Customer BillTo { get; set; } } リフレクションを使用してを通過し、InvoiceのNameプロパティを取得したいと思いCustomerます。このコードが機能すると仮定して、私が求めているのは次のとおりです。 Invoice inv = …
82 c#  reflection 

18
リフレクションを使用して、あるクラスのフィールドから別のクラスにすべての値をコピーします
基本的に別のクラスのコピーであるクラスがあります。 public class A { int a; String b; } public class CopyA { int a; String b; } 私は何をやっていることは、クラスから値を入れているAにCopyA送信する前にCopyAWebサービスを呼び出して。今、私は反射-メソッドを作成したいと思い、そのクラスから基本的にコピー(名前とタイプ別)同一であり、すべてのフィールドAクラスへCopyA。 これどうやってするの? これは私がこれまでに持っているものですが、それは完全には機能しません。ここでの問題は、ループしているフィールドにフィールドを設定しようとしていることだと思います。 private &lt;T extends Object, Y extends Object&gt; void copyFields(T from, Y too) { Class&lt;? extends Object&gt; fromClass = from.getClass(); Field[] fromFields = fromClass.getDeclaredFields(); Class&lt;? extends Object&gt; tooClass = …
82 java  reflection 


6
リフレクション付きの「キャスティング」
次のサンプルコードを検討してください。 class SampleClass { public long SomeProperty { get; set; } } public void SetValue(SampleClass instance, decimal value) { // value is of type decimal, but is in reality a natural number =&gt; cast instance.SomeProperty = (long)value; } 今、私はリフレクションを通して同様のことをする必要があります: void SetValue(PropertyInfo info, object instance, object value) { // throws System.ArgumentException: …
81 c#  reflection  casting 

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