.NET 3.5でReflectionを使用してプライベートメソッドをオーバーライドすることはできますか?Reflectionでプライベートメソッドをオーバーライド
答えて
これは、(クラスを継承する動的な型を書くことによって)それを上書きすることができるようにするためにはvirtual
である必要があります。private virtual
を持つことはできません。おそらくinternal virtual
を無効にすることができますが、これでもセキュリティの問題が発生する可能性があります。最終的に、私はいいえと言います。
反射を使用していません。あなたはAOPのいくつかの並べ替えを使用する必要があります。
反射のみを使用しているわけではありません。おそらくあなたができる最も良い方法は、Reflection.EmitまたはCodeDomと組み合わせてReflectionを使用して、クラスを新しい名前空間に複製することです。あなたが置きたいプライベートメソッドを見つけたら、あなたはそれをコピーしないで、あなたはあなたの置換えを出します。
しかし、この手法をもっとはるかに難しくする多くの手法が開発者が使用できます。クラスの実装を多くのプライベートクラスまたは内部クラスに分割することはその1つです。
注:CodeDomを使用すると、グラフをメモリに作成し、コンパイルし、結果のアセンブリをロードする必要があります。
これはおそらくそれが価値があるよりも多くのトラブルです。
他の方法は、Reflectorを使用してクラスを逆アセンブルし、コードを取り込み、メソッドreplaceを使用して独自のクラスを構築することです。ここでも、克服すべき重要な技術的および法的なハードルがあります。あなたは逆アセンブルされたコードから多くを学ぶかもしれません。
Typemock Isolatorは、.NETプロファイラAPI(Roy OsheroveによるThe Art of Unit Testingによる)によってこれを行うことができます。
- 1. Reflection&WCF
- 2. Java Reflection
- 3. Java Reflection
- 4. scala reflection
- 5. Java Reflection、getMethod()
- 6. Proguard with Reflection
- 7. Java Reflection、Class Objects
- 8. scala reflection error java
- 9. Android enum reflection
- 10. Java Reflection Resources
- 11. C#Reflection - GetMethod
- 12. c#、Internal、Reflection
- 13. Swift 2 Reflection Error
- 14. Java Reflection - serviceCall
- 15. Shader Reflection With DirectX11
- 16. .Net Reflection GetProperties()
- 17. Entity Framework - Reflection
- 18. Reflection - restore time.Time instance
- 19. NPE with reflection
- 20. javascript reflection library
- 21. C#Reflection SetValue
...コードがわかりにくい場合は、何も習得しないかもしれません。 –
あなたはいくつかのコードが難読化されていることを知ることができます:-) –