私は、「リフレクションを使用する開発者のエクスペリエンスを向上させる」ことを目的としたFasterflectというライブラリに貢献しています。そのため、従来のリフレクションの上に構築された抽象化を提供し、まったく同じシナリオで使用されます。
次に、オブジェクトインスタンスを介してメンバーにアクセスするための現在の構文を示します。
obj.SetPropertyValue( "PropertyWithPrivateSetter", "foo" );
obj.SetFieldValue( "_readOnlyIntegerProperty", 123 );
あるユーザーは、lamdbaベースのアクセスのサポートを追加することを提案しました(Fluent Hibernateと同様)。
obj.SetPropertyValue<MyClass>( x => x.PropertyWithPrivateSetter, "foo" );
obj.SetFieldValue<MyClass>( x => x.ReadOnlyInteger, Access.CamelCaseField(Prefix.Underscore), 123 );
コンパイル時に知らない型に対してリフレクションが通常実行されることを考えると、これが役立つシナリオを考えるのに苦労しています。私は想像力に欠けているだけですか?コンパイル時にタイプがわかっているリフレクションの有効なシナリオはありますか?
このNBuilder機能リクエストには、元の提案に対する追加のコンテキストがいくつかあり、 Fasterflect機能リクエストを表示することもできます。