Używam PostSharp Express w VS2013 do tworzenia aspektów sprawdzania poprawności, które mogę zastosować do moich właściwości. Poszłam za this PostSharp guide on location interception. Wszystkie one działają dobrze, ale ja dostaję setki ostrzeżenia stwierdzające:PostSharp Conflicting Aspects warning
Sprzeczne aspekty na „MyNamespace.get_MyProperty”: transformacje „.MyValidation1Attribute: przechwycona przez doradztwo OnGetValue, OnSetValue” i „MyNamespace.Validation2Attribute: przechwycona przez doradztwo OnGetValue, OnSetValue "nie są przemienne, ale nie są one silnie zamówione . Ich kolejność realizacji jest nieokreślona.
Co moim zdaniem jest wynikiem umieszczenia wielu aspektów sprawdzania poprawności na tych samych właściwościach. Najpierw próbowałem przecinać atrybuty, które, jak rozumiem, mają je zamawiać: [Validation1,Validation2]
, ale ostrzeżenia pozostały.
Ponieważ moje aspekty są przemienne (to nie ma znaczenia w jakiej kolejności są realizowane), the PostSharp docs advise oznaczyć je jako takie za pomocą AspectTypeDependency następująco:
[AspectTypeDependency(AspectDependencyAction.Commute, typeof(ILocationValidationAspect))]
Jednak wydaje się, że nie ma nazw PostSharp.Aspects.Dependencies
zawarte w licencji Express. Czy istnieje możliwe rozwiązanie tych ostrzeżeń za pomocą licencji Express? Czy to znaczy, że nie mogę użyć więcej niż jednego aspektu bez kupowania pro lub ostatecznego? Byłbym skłonny spróbować wdrożyć mój własny kontroler zależności, gdybym mógł usunąć te ostrzeżenia w ten sposób.
Dziękujemy, dodając AspectPriority do każdego sprawdzania poprawności działa! – Ivan