    

 ## On this page

  

 

 # Class LinkUpdateAttribute

 Last update: 09.03.2026 

<a id="VM_Models_Pre_LinkUpdateAttribute"></a>

Namespace: [VM.Models.Pre](VM.Models.Pre.md)  
Assembly: VM.Models.Pre.Aspects.dll

```csharp
[Aspect(Scope.PerInstance)]
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
[Injection(typeof(LinkUpdateAttribute))]
[Mixin(typeof(ILinkUpdateOwner))]
public class LinkUpdateAttribute : LinkBaseAttribute, ILinkUpdateOwner

```

#### Inheritance

object ← Attribute ← [LinkBaseAttribute](VM.Models.Pre.LinkBaseAttribute.md) ← [LinkUpdateAttribute](VM.Models.Pre.LinkUpdateAttribute.md)

#### Derived

[LinkDestroyAttribute](VM.Models.Pre.LinkDestroyAttribute.md)

#### Implements

ILinkUpdateOwner

#### Inherited Members

[LinkBaseAttribute.Dispose()](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_Dispose), [LinkBaseAttribute.Initialize(object)](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_Initialize_System_Object_), [LinkBaseAttribute.AddCache(string, IDisposable)](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_AddCache_System_String_System_IDisposable_), [LinkBaseAttribute.DisposeManagedResources()](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_DisposeManagedResources), [LinkBaseAttribute.InitializeProperty(object, IEnumerable&lt;PropertyInfo&gt;)](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_InitializeProperty_System_Object_System_Collections_Generic_IEnumerable_System_Reflection_PropertyInfo__), [LinkBaseAttribute.Unsubscribe(string)](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_Unsubscribe_System_String_), [LinkBaseAttribute.CacheItems](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_CacheItems), [LinkBaseAttribute.IsCacheEmpty](VM.Models.Pre.LinkBaseAttribute.md#VM_Models_Pre_LinkBaseAttribute_IsCacheEmpty)

#### Extension Methods

[LinkPropertyItemCache.GetLinkProperties(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkProperties_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkPropertiesAndValues(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkPropertiesAndValues_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkedObjects&lt;T&gt;(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Constructors

### <a id="VM_Models_Pre_LinkUpdateAttribute__ctor"></a> LinkUpdateAttribute()

```csharp
public LinkUpdateAttribute()

```

### <a id="VM_Models_Pre_LinkUpdateAttribute__ctor_System_Type_"></a> LinkUpdateAttribute(Type)

```csharp
public LinkUpdateAttribute(Type behaviorType)

```

#### Parameters

`behaviorType` Type

### <a id="VM_Models_Pre_LinkUpdateAttribute__ctor_VM_Models_Pre_LinkBehaviorType_System_String___"></a> LinkUpdateAttribute(LinkBehaviorType, params string\[\])

```csharp
public LinkUpdateAttribute(LinkBehaviorType linkBehaviorType, params string[] behaviorNames)

```

#### Parameters

`linkBehaviorType` LinkBehaviorType

`behaviorNames` string\[\]

## Fields

### <a id="VM_Models_Pre_LinkUpdateAttribute___a__instance"></a> \_\_a$\_instance

```csharp
public static readonly LinkUpdateAttribute __a$_instance

```

#### Field Value

[LinkUpdateAttribute](VM.Models.Pre.LinkUpdateAttribute.md)

## Properties

### <a id="VM_Models_Pre_LinkUpdateAttribute_AfterEventName"></a> AfterEventName

```csharp
protected virtual string AfterEventName { get; }

```

#### Property Value

string

### <a id="VM_Models_Pre_LinkUpdateAttribute_BeforeEventName"></a> BeforeEventName

```csharp
protected virtual string BeforeEventName { get; }

```

#### Property Value

string

### <a id="VM_Models_Pre_LinkUpdateAttribute_TypeId"></a> TypeId

```csharp
public override object TypeId { get; }

```

#### Property Value

object

## Methods

### <a id="VM_Models_Pre_LinkUpdateAttribute_AfterSetter_System_Object_System_String_System_Object___System_Attribute___"></a> AfterSetter(object, string, object\[\], Attribute\[\])

```csharp
[Advice(Kind.After, Targets = Target.AnyAccess|Target.Setter)]
public virtual void AfterSetter(object owner, string propertyName, object[] values, Attribute[] triggers)

```

#### Parameters

`owner` object

`propertyName` string

`values` object\[\]

`triggers` Attribute\[\]

### <a id="VM_Models_Pre_LinkUpdateAttribute_BeforeSetter_System_String_"></a> BeforeSetter(string)

```csharp
[Advice(Kind.Before, Targets = Target.AnyAccess|Target.Setter)]
public virtual void BeforeSetter(string propertyName)

```

#### Parameters

`propertyName` string

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetAfterBehavior__1_System_Object_System_String_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs____0_System_Boolean_"></a> GetAfterBehavior&lt;TAttribute&gt;(object, string, object, EventPattern&lt;LinkEventArgs&gt;, TAttribute, bool)

```csharp
protected Action GetAfterBehavior<TAttribute>(object owner, string propertyName, object link, EventPattern<LinkEventArgs> eventPattern, TAttribute attribute, bool isSwap) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyName` string

`link` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

`attribute` TAttribute

`isSwap` bool

#### Returns

Action

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetAfterSubscriber__1_System_Object_System_String_System_Object___0_System_Boolean_"></a> GetAfterSubscriber&lt;TAttribute&gt;(object, string, object, TAttribute, bool)

```csharp
protected IDisposable GetAfterSubscriber<TAttribute>(object owner, string propertyName, object link, TAttribute linkAttribute, bool isSwap) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyName` string

`link` object

`linkAttribute` TAttribute

`isSwap` bool

#### Returns

IDisposable

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetBeforeBehavior__1_System_Object_System_String_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs____0_System_Boolean_"></a> GetBeforeBehavior&lt;TAttribute&gt;(object, string, object, EventPattern&lt;LinkEventArgs&gt;, TAttribute, bool)

```csharp
protected Action GetBeforeBehavior<TAttribute>(object owner, string propertyName, object link, EventPattern<LinkEventArgs> eventPattern, TAttribute attribute, bool isSwap) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyName` string

`link` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

`attribute` TAttribute

`isSwap` bool

#### Returns

Action

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetBeforeSubscriber__1_System_Object_System_String_System_Object___0_System_Boolean_"></a> GetBeforeSubscriber&lt;TAttribute&gt;(object, string, object, TAttribute, bool)

```csharp
protected IDisposable GetBeforeSubscriber<TAttribute>(object owner, string propertyName, object link, TAttribute linkAttribute, bool isSwap) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyName` string

`link` object

`linkAttribute` TAttribute

`isSwap` bool

#### Returns

IDisposable

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetBehavior__1_System_Object_System_Object_System_String_System_Object___0_System_Boolean_"></a> GetBehavior&lt;TAttribute&gt;(object, object, string, object, TAttribute, bool)

```csharp
protected static Action GetBehavior<TAttribute>(object caller, object owner, string propertyName, object link, TAttribute attribute, bool isSwap) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`caller` object

`owner` object

`propertyName` string

`link` object

`attribute` TAttribute

`isSwap` bool

#### Returns

Action

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetDefaultAfterBehavior_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs__"></a> GetDefaultAfterBehavior(object, EventPattern&lt;LinkEventArgs&gt;)

```csharp
protected virtual Action GetDefaultAfterBehavior(object source, EventPattern<LinkEventArgs> eventPattern)

```

#### Parameters

`source` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

#### Returns

Action

### <a id="VM_Models_Pre_LinkUpdateAttribute_GetDefaultBeforeBehavior_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs__"></a> GetDefaultBeforeBehavior(object, EventPattern&lt;LinkEventArgs&gt;)

```csharp
protected virtual Action GetDefaultBeforeBehavior(object source, EventPattern<LinkEventArgs> eventPattern)

```

#### Parameters

`source` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

#### Returns

Action

### <a id="VM_Models_Pre_LinkUpdateAttribute_InitializeProperty_System_Object_System_Collections_Generic_IEnumerable_System_Reflection_PropertyInfo__"></a> InitializeProperty(object, IEnumerable&lt;PropertyInfo&gt;)

```csharp
protected override void InitializeProperty(object owner, IEnumerable<PropertyInfo> propertyInfos)

```

#### Parameters

`owner` object

`propertyInfos` IEnumerable&lt;PropertyInfo&gt;

### <a id="VM_Models_Pre_LinkUpdateAttribute_InitializeProperty__1_System_Object_System_Collections_Generic_IEnumerable_System_Reflection_PropertyInfo__System_Boolean_"></a> InitializeProperty&lt;TAttribute&gt;(object, IEnumerable&lt;PropertyInfo&gt;, bool)

```csharp
protected void InitializeProperty<TAttribute>(object owner, IEnumerable<PropertyInfo> propertyInfos, bool isSwap = false) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyInfos` IEnumerable&lt;PropertyInfo&gt;

`isSwap` bool

#### Type Parameters

`TAttribute`

### <a id="VM_Models_Pre_LinkUpdateAttribute_Subscribe__1_System_Object_System_String_System_Object_System_Collections_Generic_IEnumerable_System_Attribute__System_Boolean_"></a> Subscribe&lt;TAttribute&gt;(object, string, object, IEnumerable&lt;Attribute&gt;, bool)

```csharp
protected void Subscribe<TAttribute>(object owner, string propertyName, object link, IEnumerable<Attribute> attributes, bool isSwap = false) where TAttribute : LinkUpdateAttribute

```

#### Parameters

`owner` object

`propertyName` string

`link` object

`attributes` IEnumerable&lt;Attribute&gt;

`isSwap` bool

#### Type Parameters

`TAttribute`