【发布时间】:2015-06-04 16:21:29
【问题描述】:
我在 VS2013 中使用 PostSharp Express 来创建可以应用于我的属性的验证方面。我关注了this PostSharp guide on location interception。它们都运行良好,但我收到了数百条警告:
“MyNamespace.get_MyProperty”的冲突方面:转换 ".MyValidation1Attribute:被通知 OnGetValue 拦截, OnSetValue”和“MyNamespace.Validation2Attribute:被拦截 建议 OnGetValue, OnSetValue" 不是可交换的,但它们不是 强烈订购。它们的执行顺序是不确定的。
我认为这是我在同一属性上放置多个验证方面的结果。首先,我尝试用逗号分隔属性,据我所知应该对它们进行排序:[Validation1,Validation2],但警告仍然存在。
由于我的切面是可交换的(它们的执行顺序无关紧要),the PostSharp docs advise 使用 AspectTypeDependency 将它们标记为如下:
[AspectTypeDependency(AspectDependencyAction.Commute, typeof(ILocationValidationAspect))]
但是,PostSharp.Aspects.Dependencies 命名空间似乎不包含在 Express 许可下。是否有任何可能的解决方案可以仅使用 Express 许可证来解决这些警告?或者这是否意味着我不能在不购买 pro 或 Ultimate 的情况下使用多个方面?如果我能以这种方式删除这些警告,我愿意尝试实现我自己的依赖控制器。
【问题讨论】:
标签: c# visual-studio validation postsharp aop