Table of Contents

Class TypeShapeExtensionAttribute

Namespace
PolyType
Assembly
PolyType.dll

An assembly-level attribute that can extend an existing type's generated shape, as if TypeShapeAttribute had been applied to the target type.

[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
public class TypeShapeExtensionAttribute : Attribute
Inheritance
TypeShapeExtensionAttribute
Inherited Members

Constructors

TypeShapeExtensionAttribute(Type)

An assembly-level attribute that can extend an existing type's generated shape, as if TypeShapeAttribute had been applied to the target type.

public TypeShapeExtensionAttribute(Type target)

Parameters

target Type

The type to be extended.

Properties

AssociatedTypes

Types for which a shape should be generated when a type shape is generated for Target.

public Type[] AssociatedTypes { get; init; }

Property Value

Type[]

Remarks

If Target is a generic type definition, each type in this array must also be a generic type definition with the same number of generic type parameters.

Requirements

Gets the elements of the generated shape that are required at runtime.

public TypeShapeRequirements Requirements { get; init; }

Property Value

TypeShapeRequirements

The default value is Full.

Remarks

This property only impacts generation of object shapes. All other shapes (e.g. collections, enums, unions) are always completely defined.

Target

Gets the target type.

public Type Target { get; }

Property Value

Type

Remarks

This is the type that is being extended. If the type is declared in the same assembly that contains this attribute, consider removing this attribute in favor of applying TypeShapeAttribute directly to the target type.