내가 구현하는 몇 가지 측면에서 아래의 코드를 사용 INotifyPropertyChanged
:LocationInterceptionAspect.OnSetValue (LocationInterceptionArgs args) : 속성이 인덱서인지 확인하고 값을 가져 오는 방법은 무엇입니까?
[Serializable]
public class NotifyPropertyChangedAspect : LocationInterceptionAspect {
/* ... stuff ... */
public override void OnSetValue(LocationInterceptionArgs args)
{
var obj = args.Instance;
/* ... more stuff ... */
var oldValue = args.Binding.GetValue(ref obj, Arguments.Empty);
/* ... extra stuff ... */
}
}
하지만 내 속성은 인덱서 인 경우, 다음은 예외 InvalidCastException
와 함께 실패
Unable to cast object of type 'PostSharp.Aspects.Internals.Arguments`1[PostSharp.Aspects.Arguments]' to type 'PostSharp.Aspects.Internals.Arguments`1[System.Int32]'.
는 어떻게 확인합니까 속성이 인덱서이고 해당 값을 얻는다면 (컴파일하는 동안 검사를 수행하고 싶습니다. CompileTimeInitialize
메서드 내에서)?