Özel üyelere değer ayarlamadan önce bazı doğrulama gerçekleştirmek için özellik ayarlayıcısını postsharp LocationInterceptionAspect
kullanarak engellemeye çalışıyorum. Değer veri türü özellik veri türü ile uyumlu değilse, InvalidCastException
atar ve OnSetValue
çağırmaz, ancak iyi çalışır. Bu istisnayı genel olarak yakalayabileceğim, değeri geçersiz kılacak ve daha sonra setter ile işleyebileceğim bir yol var mı?Yakalamak için özellik atama InvalidCastException
İşletme Doğrulayıcı Unsur:
<Serializable()>
Public Class PropertyValidatorAttribute
Inherits LocationInterceptionAspect
Public Overrides Sub OnSetValue(args As LocationInterceptionArgs)
'Perform validation here
args.ProceedSetValue()
End Sub
End Class
Sınıf yönü kullanılır:
Public Enum MyEnum
A = 1
B = 2
End Enum
Public Class SampleClass
<PropertyValidator()>
Public Property SomeProperty As MyEnum
End Class
Main:
Sub Main()
Dim x As New SampleClass()
x.SomeProperty = "X"
End Sub