Ich verwende PostSharp Express in VS2013, um Validierungsaspekte zu erstellen, die ich auf meine Eigenschaften anwenden kann. Ich folgte this PostSharp guide on location interception. Sie alle arbeiten gut, aber ich bin immer Hunderte von Warnungen besagt:PostSharp widersprüchliche Aspekte Warnung
Widersprüchliche Aspekte auf „MyNamespace.get_MyProperty“: Transformationen „.MyValidation1Attribute: Abgefangen durch Beratung OnGetValue, OnSetValue“ und „MyNamespace.Validation2Attribute: Abgefangen durch Hinweis OnGetValue, OnSetValue "sind nicht kommutativ, aber sie sind nicht stark geordnet. Ihre Reihenfolge der Ausführung ist unbestimmbar.
Was ich denke, ist ein Ergebnis meiner mehrere Validierung Aspekte auf die gleichen Eigenschaften. Zuerst habe ich versucht, die Attribute zu trennen, von denen ich verstehe, dass sie sie anordnen sollen: [Validation1,Validation2]
aber die Warnungen blieben noch.
Da meine Aspekte kommutativ sind (es spielt keine Rolle, in welcher Reihenfolge sie ausgeführt werden), the PostSharp docs advise sie als solche markieren AspectTypeDependency wie folgt verwendet:
[AspectTypeDependency(AspectDependencyAction.Commute, typeof(ILocationValidationAspect))]
Es scheint jedoch, dass der PostSharp.Aspects.Dependencies
Namespace ist nicht in der Express-Lizenz enthalten. Gibt es eine mögliche Lösung, um diese Warnungen nur mit der Express-Lizenz zu lösen? Oder bedeutet das, dass ich niemals mehr als einen Aspekt nutzen kann, ohne Pro oder Ultimate zu kaufen? Ich würde gerne versuchen, meinen eigenen Abhängigkeitscontroller zu implementieren, wenn ich diese Warnungen auf diese Weise entfernen könnte.
Vielen Dank, Hinzufügen von AspectPriority zu jeder Validierung funktioniert! – Ivan