我有一个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