我有一個CustomAuthorize
屬性,用於檢查用戶是否有權訪問功能(用戶或角色可以與層次集函數中的項目相關聯)。在設計/構建時檢查自定義屬性參數
對於給定的操作方法......
[CustomAuthorize("Security.Admin.ManageWidgets.Update")]
這工作,但我擔心更改安全對象可能會導致不會直到運行時發現的問題。我意識到我可以編寫單元測試來減輕這種風險,但我想知道是否可以在編譯時檢查屬性參數。我也喜歡讓Intellisense幫我輸入這個表達式。
理想情況下,我可以傳遞一個lambda表達式。
[CustomAuthorize(i => i.Admin.ManageWidgets.Update)]
不幸的是這is not currently possible(additional info from Microsoft)。
我也試過封裝表達希望它會進行評估,然後傳遞到該屬性爲一個字符串,但是這也失敗,同樣的錯誤(表達式不能包含匿名方法或lambda表達式)進行編譯。
[CustomAuthorize(LambdaToString(i => i.Admin.ManageWidgets.Update))]
我如何可以添加我的自定義一些設計時/編譯時支持屬性參數?
+1有趣的問題。 – Mrchief