C#でのReflectionの目的について知りたいと思います。私は 'Stack Overflow'など、さまざまなサイトでさまざまな記事を書いてきましたが、それでもReflectionを説明する包括的な回答は見つかりませんでした。 Reflectionを使用する必要がある状況に直面したリアルタイムのシナリオを説明できる回答があれば、非常に役に立ちます。リアルタイムシナリオにおけるC#での反射の使用と目的
答えて
プラグインシステムを構築するとします。あなたのアプリケーションがあなたのプラグインについて知っておく必要がある最小限のものがあります。
- 各プラグインは、各プラグインがPluginStartは、名前空間のプラグインで
- あるPluginStart というクラス
- PluginStartは、文字列型
プラグインをロードしてMessageプロパティの値を取得する場合は、リフレクションを使用してプラグインを実行する必要があります。簡単な例は、次のようなものです。
Assembly dll = Assembly.LoadFile(dllPath);
Type importStartType = dll?.GetType("Plugin.pluginStart");
string message = importStartType?.GetField("Message")?.GetValue(importStartType)?.ToString();
.NET FrameworkのReflection APIを使用すると、実行時にプログラムでタイプ(アセンブリ)情報を取得できます。また、.NET Reflectionを使用してレイトバインディングを実現することもできます。実行時に、Reflection機構はPEファイルを使用してアセンブリに関する情報を読み取ります。リフレクションを使用すると、コンパイル時に使用できなかったコードを使用できます。 .NET Reflectionは、アプリケーションが自身に関する情報を収集し、それ自体で操作することを可能にします。アセンブリ内のすべての型を検索したり、アセンブリ内のメソッドを動的に呼び出すために効果的に使用できます。これには、オブジェクトのタイプ、プロパティ、メソッド、およびイベントに関する情報が含まれます。リフレクションでは、型のインスタンスを動的に作成したり、型を既存のオブジェクトにバインドしたり、既存のオブジェクトから型を取得したり、そのメソッドを呼び出したり、そのフィールドやプロパティにアクセスしたりできます。リフレクションを使用して属性情報にアクセスすることもできます。
これが役に立ちます。
Why is the use of reflection in .NET recommended?
http://www.c-sharpcorner.com/uploadfile/keesari_anjaiah/reflection-in-net/
- 1. のC#、反射とプリミティブ型
- 2. 特定の状況におけるObj-cカテゴリの目的。
- 3. 目的のC++プログラミングにおけるオブジェクトの配列
- 4. 反射代替としてC++デバッガを使用する
- 5. レルム - ネイティブで目的に反するC
- 6. のObjective-Cの反射
- 7. Linq2SQL - 反射を使用して項目を選択する
- 8. 静的反射のオンザフライフィールド?
- 9. は動的反射
- 10. テンソルフローにおけるEigenのC++使用
- 11. C#反射の問題
- 12. 目的Cプロトコルの使用
- 13. C#クラスのプロパティにイベントリスナーを追加します。反射的
- 14. C#の反射が、私は次のシナリオで反射機構を使用する方法を思ったんだけど型が他のいくつかのタイプ
- 15. 反射とScalaの
- 16. 反射を使用した一般的なパラメータタイプの比較
- 17. 問題は、動的反射
- 18. 反射のためにeclipseで-parametersオプションを使用する
- 19. 反射とソケット
- 20. 反射と
- 21. 反射とタイフレフ
- 22. Javaクラスの静的変数に反射的にアクセスする
- 23. k-meansクラスタリングにおけるホールドアウトセットの目的は何ですか?
- 24. .NET用反射鏡
- 25. 私は反射から来たものを初期化ケースクラスの中でのタプルを使用する反射
- 26. リニアおよびCPLEX目的関数における二次項
- 27. C#:反射を使用してIntPtr *を取得して使用する
- 28. 増分Javaのstringtemplateにおける反復における値
- 29. obj-cでのinitパターンの目的とその使用
- 30. 目的C - NSMutableStringsのdeleteCharactersInRangeの使用
https://stackoverflow.com/documentation/c%23/28/reflection#t=201706200705347521146 – HimBromBeere
すべてのORMは、オブジェクトのプロパティは、彼らがそのように命名されている方法を見つけるための方法が必要です適切なSQL文を生成できます。 –
@JanesAbouChleihは正確ではありません。それは、用途や反射のわずか10%です。 –