    

 ## On this page

  

 

 # Class LinkDestroyAttribute

 Last update: 09.03.2026 

<a id="VM_Models_Pre_LinkDestroyAttribute"></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(LinkDestroyAttribute))]
[Mixin(typeof(ILinkDestroyOwner))]
public class LinkDestroyAttribute : LinkUpdateAttribute, ILinkUpdateOwner, ILinkDestroyOwner

```

#### Inheritance

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

#### Derived

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

#### Implements

ILinkUpdateOwner, ILinkDestroyOwner

#### Inherited Members

[LinkUpdateAttribute.\_\_a$\_instance](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute___a__instance), [LinkUpdateAttribute.AfterSetter(object, string, object\[\], Attribute\[\])](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_AfterSetter_System_Object_System_String_System_Object___System_Attribute___), [LinkUpdateAttribute.BeforeSetter(string)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_BeforeSetter_System_String_), [LinkUpdateAttribute.GetBehavior&lt;TAttribute&gt;(object, object, string, object, TAttribute, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetBehavior__1_System_Object_System_Object_System_String_System_Object___0_System_Boolean_), [LinkUpdateAttribute.GetAfterBehavior&lt;TAttribute&gt;(object, string, object, EventPattern&lt;LinkEventArgs&gt;, TAttribute, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetAfterBehavior__1_System_Object_System_String_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs____0_System_Boolean_), [LinkUpdateAttribute.GetAfterSubscriber&lt;TAttribute&gt;(object, string, object, TAttribute, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetAfterSubscriber__1_System_Object_System_String_System_Object___0_System_Boolean_), [LinkUpdateAttribute.GetBeforeBehavior&lt;TAttribute&gt;(object, string, object, EventPattern&lt;LinkEventArgs&gt;, TAttribute, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetBeforeBehavior__1_System_Object_System_String_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs____0_System_Boolean_), [LinkUpdateAttribute.GetBeforeSubscriber&lt;TAttribute&gt;(object, string, object, TAttribute, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetBeforeSubscriber__1_System_Object_System_String_System_Object___0_System_Boolean_), [LinkUpdateAttribute.GetDefaultAfterBehavior(object, EventPattern&lt;LinkEventArgs&gt;)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetDefaultAfterBehavior_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs__), [LinkUpdateAttribute.GetDefaultBeforeBehavior(object, EventPattern&lt;LinkEventArgs&gt;)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_GetDefaultBeforeBehavior_System_Object_System_Reactive_EventPattern_VM_Managed_LinkEventArgs__), [LinkUpdateAttribute.InitializeProperty(object, IEnumerable&lt;PropertyInfo&gt;)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_InitializeProperty_System_Object_System_Collections_Generic_IEnumerable_System_Reflection_PropertyInfo__), [LinkUpdateAttribute.InitializeProperty&lt;TAttribute&gt;(object, IEnumerable&lt;PropertyInfo&gt;, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_InitializeProperty__1_System_Object_System_Collections_Generic_IEnumerable_System_Reflection_PropertyInfo__System_Boolean_), [LinkUpdateAttribute.Subscribe&lt;TAttribute&gt;(object, string, object, IEnumerable&lt;Attribute&gt;, bool)](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_Subscribe__1_System_Object_System_String_System_Object_System_Collections_Generic_IEnumerable_System_Attribute__System_Boolean_), [LinkUpdateAttribute.TypeId](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_TypeId), [LinkUpdateAttribute.AfterEventName](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_AfterEventName), [LinkUpdateAttribute.BeforeEventName](VM.Models.Pre.LinkUpdateAttribute.md#VM_Models_Pre_LinkUpdateAttribute_BeforeEventName), [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_LinkDestroyAttribute__ctor"></a> LinkDestroyAttribute()

```csharp
public LinkDestroyAttribute()

```

### <a id="VM_Models_Pre_LinkDestroyAttribute__ctor_System_Type_"></a> LinkDestroyAttribute(Type)

```csharp
public LinkDestroyAttribute(Type behaviorType)

```

#### Parameters

`behaviorType` Type

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

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

```

#### Parameters

`linkBehaviorType` LinkBehaviorType

`behaviorNames` string\[\]

## Fields

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

```csharp
public static readonly LinkDestroyAttribute __a$_instance

```

#### Field Value

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

## Properties

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

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

```

#### Property Value

string

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

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

```

#### Property Value

string

## Methods

### <a id="VM_Models_Pre_LinkDestroyAttribute_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 override void AfterSetter(object owner, string propertyName, object[] values, Attribute[] triggers)

```

#### Parameters

`owner` object

`propertyName` string

`values` object\[\]

`triggers` Attribute\[\]

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

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

```

#### Parameters

`propertyName` string

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

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

```

#### Parameters

`source` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

#### Returns

Action

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

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

```

#### Parameters

`source` object

`eventPattern` EventPattern&lt;LinkEventArgs&gt;

#### Returns

Action

### <a id="VM_Models_Pre_LinkDestroyAttribute_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;