示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PropertyAdviceContext"/> class.
 /// </summary>
 /// <param name="propertyAdvice">The property advice.</param>
 /// <param name="propertyInfo">The property information.</param>
 /// <param name="isSetter">if set to <c>true</c> [is setter].</param>
 /// <param name="adviceValues">The advice values.</param>
 /// <param name="nextAdviceContext">The next advice context.</param>
 /// <exception cref="System.InvalidOperationException">Only properties can be advised with this interface</exception>
 internal PropertyAdviceContext(IPropertyAdvice propertyAdvice, PropertyInfo propertyInfo, bool isSetter, AdviceValues adviceValues, AdviceContext nextAdviceContext)
     : base(adviceValues, nextAdviceContext)
 {
     _propertyAdvice = propertyAdvice;
     TargetProperty = propertyInfo;
     IsSetter = isSetter;
     if (IsGetter)
         Index = new ArraySpan<object>(AdviceValues.Parameters, 0, AdviceValues.Parameters.Length);
     else
         Index = new ArraySpan<object>(AdviceValues.Parameters, 1, AdviceValues.Parameters.Length - 1);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PropertyAdviceContext"/> class.
 /// </summary>
 /// <param name="propertyAdvice">The property advice.</param>
 /// <param name="propertyInfo">The property information.</param>
 /// <param name="isSetter">if set to <c>true</c> [is setter].</param>
 /// <param name="adviceValues">The advice values.</param>
 /// <param name="nextAdviceContext">The next advice context.</param>
 internal PropertyAdviceContext(IPropertyAdvice propertyAdvice, PropertyInfo propertyInfo, bool isSetter, AdviceValues adviceValues, AdviceContext nextAdviceContext)
     : base(adviceValues, nextAdviceContext)
 {
     _propertyAdvice = propertyAdvice;
     TargetProperty  = propertyInfo;
     IsSetter        = isSetter;
     if (IsGetter)
     {
         Index = new ArraySpan <object>(AdviceValues.Arguments, 0, AdviceValues.Arguments.Length);
     }
     else
     {
         Index = new ArraySpan <object>(AdviceValues.Arguments, 1, AdviceValues.Arguments.Length - 1);
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PropertyAdviceContext"/> class.
 /// </summary>
 /// <param name="propertyAdvice">The property advice.</param>
 /// <param name="propertyInfo">The property information.</param>
 /// <param name="isSetter">if set to <c>true</c> [is setter].</param>
 /// <param name="target">The target.</param>
 /// <param name="targetType">Type of the target.</param>
 /// <param name="parameters">The parameters.</param>
 /// <param name="nextAdviceContext">The next advice context.</param>
 protected PropertyAdviceContext(IPropertyAdvice propertyAdvice, PropertyInfo propertyInfo, bool isSetter, object target, Type targetType, object[] parameters, AdviceContext nextAdviceContext)
     : this(propertyAdvice, propertyInfo, isSetter, new AdviceValues(target, targetType, parameters), nextAdviceContext)
 {
 }