我正在使用PostSharp Express在VS2013中创建验证方面,可以应用于我的属性。我遵循了此PostSharp指南的位置拦截。它们都工作得很好,但是我收到了数百个警告,指出:
然而,似乎在Express许可证下不包括
“MyNamespace.get_MyProperty”上的冲突方面:“.MyValidation1Attribute:通过建议OnGetValue, OnSetValue拦截”和“MyNamespace.Validation2Attribute:通过建议OnGetValue, OnSetValue拦截”不可交换,但它们没有强有序。它们的执行顺序是不确定的。
我认为这是将多个验证方面放置在同一属性上的结果。首先,我尝试使用逗号分隔属性,我理解这应该对它们进行排序:[Validation1,Validation2]
,但是警告仍然存在。
由于我的方面具有可交换性(它们的执行顺序无关紧要),PostSharp文档建议使用AspectTypeDependency来标记它们,如下所示:
[AspectTypeDependency(AspectDependencyAction.Commute, typeof(ILocationValidationAspect))]
然而,似乎在Express许可证下不包括
PostSharp.Aspects.Dependencies
命名空间。是否有可能仅使用Express许可证解决这些警告?或者这意味着我不能使用多个方面而不购买专业版或终极版?如果可以通过实现自己的依赖控制器来消除这些警告,我愿意尝试。