プライベートメンバーに値を設定する前に、ポストシャープLocationInterceptionAspect
を使用してプロパティ設定ツールをインターセプトして検証を実行しようとしています。ただし、値のデータ型がプロパティデータ型と互換性がなく、InvalidCastException
をスローし、OnSetValue
を呼び出さない場合は正常に動作します。私は一般的にこの例外をキャッチでき、値を無効にしてからsetterで処理する方法はありますか?プロパティの代入を傍受するInvalidCastException
プロパティ検証アスペクト比:縦横が使用されている
<Serializable()>
Public Class PropertyValidatorAttribute
Inherits LocationInterceptionAspect
Public Overrides Sub OnSetValue(args As LocationInterceptionArgs)
'Perform validation here
args.ProceedSetValue()
End Sub
End Class
クラス:
Public Enum MyEnum
A = 1
B = 2
End Enum
Public Class SampleClass
<PropertyValidator()>
Public Property SomeProperty As MyEnum
End Class
メイン:
Sub Main()
Dim x As New SampleClass()
x.SomeProperty = "X"
End Sub