Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 冲突方面警告_C#_Visual Studio_Validation_Postsharp_Aop - Fatal编程技术网

C# 冲突方面警告

C# 冲突方面警告,c#,visual-studio,validation,postsharp,aop,C#,Visual Studio,Validation,Postsharp,Aop,我正在VS2013中使用PostSharp Express创建可应用于我的属性的验证方面。我跟着。它们都运行良好,但我收到数百条警告,说明: “MyNamespace.get_MyProperty”上的冲突方面:转换 “.MyValidation1Attribute:被通知OnGetValue截获, OnSetValue“和”MyNamespace.Validation2Attribute:被截获 “OnSetValue,OnSetValue”是不可交换的,但它们不是 秩序井然。他们的行刑顺序是

我正在VS2013中使用PostSharp Express创建可应用于我的属性的验证方面。我跟着。它们都运行良好,但我收到数百条警告,说明:

“MyNamespace.get_MyProperty”上的冲突方面:转换 “.MyValidation1Attribute:被通知OnGetValue截获, OnSetValue“和”MyNamespace.Validation2Attribute:被截获 “OnSetValue,OnSetValue”是不可交换的,但它们不是 秩序井然。他们的行刑顺序是不确定的

我认为这是我在同一属性上放置多个验证方面的结果。首先,我尝试用逗号分隔属性,据我所知,属性应该按顺序排列:
[Validation1,Validation2]
但警告仍然存在

由于我的方面是可交换的(执行顺序无关紧要),因此使用AspectTypeDependency将它们标记为可交换的,如下所示:

[AspectTypeDependency(AspectDependencyAction.Commute, typeof(ILocationValidationAspect))]

但是,Express许可证中似乎不包括
PostSharp.Aspects.Dependencies
命名空间。是否有任何可能的解决方案可以仅使用Express许可证解决这些警告?或者这是否意味着如果不购买pro或ultimate,我就不能使用多个方面?如果我能以这种方式删除这些警告,我愿意尝试实现我自己的依赖控制器

AspectTypeDependency需要专业版。但是AspectTypeDependency类型甚至应该包括在Express edition中-然后应该会出现使用未授权功能构建时错误

您可以使用AspectPriority:

[Validation1(AspectPriority = 1), Validation2(AspectPriority = 2)]
或者,您可以在aspect构造函数中分配优先级。它比方面排序灵活得多,但至少解决了警告问题