我正致力於一個名爲Fasterflect的圖書館,其目的是「改善開發者使用反思的經驗」。因此,它提供了建立在經典反射之上的抽象,並將用於完全相同的場景。圖書館開發 - 尋找建議功能的有效用例
以下所示爲通過對象實例訪問成員當前語法:
obj.SetPropertyValue("PropertyWithPrivateSetter", "foo");
obj.SetFieldValue("_readOnlyIntegerProperty", 123);
一個用戶已經建議我們添加用於基於lamdba訪問支持(類似於流利休眠):
obj.SetPropertyValue<MyClass>(x => x.PropertyWithPrivateSetter, "foo");
obj.SetFieldValue<MyClass>(x => x.ReadOnlyInteger, Access.CamelCaseField(Prefix.Underscore), 123);
由於反射通常是在編譯時不知道的類型上執行的,因此我很難考慮這種情況,因爲這樣做會很有用。我只是缺乏想象力嗎?在編譯時知道類型的反射是否存在有效的場景?
對於原始建議this NBuilder feature request有一些額外的上下文,您也可以查看Fasterflect feature request。
此功能是否實施過?我似乎無法找到任何具有類似簽名的方法。 – 2012-03-16 15:00:56
我們考慮過但認爲創建和支持這項工作所付出的努力並不值得。有關此問題的更多信息,請訪問http://fasterflect.codeplex.com/workitem/5622 – 2012-03-16 18:41:14