    

 ## On this page

  

 

 # Class LinkAttribute

 Last update: 16.07.2025 

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

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

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [Attribute](https://learn.microsoft.com/dotnet/api/system.attribute) ← [LinkBaseAttribute](VM.Models.Pre.LinkBaseAttribute.md) ← [LinkAttribute](VM.Models.Pre.LinkAttribute.md)

#### Implements

ILinkOwner, ILinkAttribute

#### 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

### LinkAttribute()

```csharp
public LinkAttribute()

```

### LinkAttribute(bool)

```csharp
public LinkAttribute(bool isChild = false)

```

#### Parameters

`isChild` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Fields

### \_\_a$\_instance

```csharp
public static readonly LinkAttribute __a$_instance

```

#### Field Value

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

## Properties

### IsChild

Indicates this property is child or not.

```csharp
public bool? IsChild { get; }

```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)?

## Methods

### AfterSetter(object, Type, string, object\[\], Attribute\[\])

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

```

#### Parameters

`owner` [object](https://learn.microsoft.com/dotnet/api/system.object)

`declaringType` [Type](https://learn.microsoft.com/dotnet/api/system.type)

`propertyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

`values` [object](https://learn.microsoft.com/dotnet/api/system.object)\[\]

`triggers` [Attribute](https://learn.microsoft.com/dotnet/api/system.attribute)\[\]

### BeforeSetter(object, Type, string, Attribute\[\])

```csharp
[Advice(Kind.Before, Targets = Target.AnyAccess|Target.Setter)]
public virtual void BeforeSetter(object owner, Type declaringType, string propertyName, Attribute[] triggers)

```

#### Parameters

`owner` [object](https://learn.microsoft.com/dotnet/api/system.object)

`declaringType` [Type](https://learn.microsoft.com/dotnet/api/system.type)

`propertyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

`triggers` [Attribute](https://learn.microsoft.com/dotnet/api/system.attribute)\[\]

### InitializeProperty(object, IEnumerable&lt;PropertyInfo&gt;)

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

```

#### Parameters

`owner` [object](https://learn.microsoft.com/dotnet/api/system.object)

`propertyInfos` [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[PropertyInfo](https://learn.microsoft.com/dotnet/api/system.reflection.propertyinfo)&gt;