IdeaBlade.Core Assembly > IdeaBlade.Core Namespace : BeforeSetAttribute Class |
'Declaration
<AttributeUsageAttribute(ValidOn=AttributeTargets.Method, AllowMultiple=True, Inherited=True)> Public Class BeforeSetAttribute Inherits PropertyInterceptorAttribute Implements System.Runtime.InteropServices._Attribute
'Usage
Dim instance As BeforeSetAttribute
[AttributeUsage(ValidOn=AttributeTargets.Method, AllowMultiple=true, Inherited=true)] public class BeforeSetAttribute : PropertyInterceptorAttribute, System.Runtime.InteropServices._Attribute
There are a number of acceptable signatures for methods marked with this attribute. In general, you can accept (or accept and return) an object of the expected property type, or accept one of the many derivations of PropertyInterceptorArgs. See the examples provided with the constructors for more information. If a signature is invalid, you will receive a PropertyInterceptorException when DevForce either builds or tries to execute the method, depending on when the error is detected.
public partial class Customer { // Sample signatures for a BeforeSet method for any Customer property // (invoked for both simple and navigation properties). // Additional signatures are possible. // Signature 1 - accept a property value and return a property value. // Any value returned is passed to next action. [BeforeSet] public object BeforeSetAnyCustomerProperty1(object value) { Console.WriteLine("Before setting a customer property 1"); return value; } // Signature 2 - accept a property value, but no return value. [BeforeSet] public void BeforeSetAnyCustomerProperty2(object value) { Console.WriteLine("Before setting a customer property 2"); } // Signature 3 - accept base IPropertyInterceptorArgs. // Allows you to cancel further actions and modify the Value. // No property information available. [BeforeSet] public void BeforeSetAnyCustomerProperty3(IPropertyInterceptorArgs args) { Console.WriteLine("Before setting a customer property 3"); } // Signature 4 - accept EntityProperty interceptor arguments. // The arguments passed allow you to determine the property retrieved // and to cancel the set. args.Value can be modified. // args.VerificationSetterOptions allows verification options to be set for all subsequent // actions within the setter. Note that verification can be turned off also. [BeforeSet] public void BeforeSetAnyCustomerProperty4(IEntityPropertySetInterceptorArgs args) { Console.WriteLine("Before setting a customer property 4"); } // Signature 5 - accept strongly-typed IPropertyInterceptorArgs. // Same features as IPropertyInterceptorArgs but Instance is now strongly-typed. [BeforeSet] public void BeforeSetAnyCustomerProperty5(IPropertyInterceptorArgs<Customer, object> args) { Console.WriteLine("Before setting a customer property 5"); } }
System.Object
System.Attribute
IdeaBlade.Core.PropertyInterceptorAttribute
IdeaBlade.Core.BeforeSetAttribute
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2