Namespace Unity.Properties
Classes
AOT
Helper class to preserve generic methods for AOT platforms.
AOT.DictionaryPropertyGenerator<TContainer, TDictionary, TKey, TValue>
Helper class to preserve dictionary property code paths.
AOT.ListPropertyGenerator<TContainer, TList, TElement>
Helper class to preserve list property code paths.
AOT.PropertyBagGenerator<TContainer>
Helper class to preserve property bag code paths.
AOT.PropertyGenerator<TContainer, TValue>
Helper class to preserve property property code paths.
AOT.SetPropertyGenerator<TContainer, TSet, TValue>
Helper class to preserve set property code paths.
ArrayPropertyBag<TElement>
An IPropertyBag<TContainer> implementation for a built in array of TElement
.
ConcreteTypeVisitor
Base class to implement a visitor responsible for getting an object's concrete type as a generic.
ContainerPropertyBag<TContainer>
Base class for implementing a static property bag for a specified container type. This is an abstract class.
CreatePropertyAttribute
Use this attribute to have a property generated for the member.
DelegateProperty<TContainer, TValue>
Represents a value property.
DictionaryPropertyBag<TKey, TValue>
An IPropertyBag<TContainer> implementation for a Dictionary<TKey,TValue> type.
DontCreatePropertyAttribute
Use this attribute to prevent have a property from being automatically generated on a public field.
GeneratePropertyBagAttribute
Use this attribute to have the source generator generate property bags for a given type.
GeneratePropertyBagsForAssemblyAttribute
Use this attribute to enable the source generator to run on this assembly.
GeneratePropertyBagsForTypeAttribute
Use this attribute to have the source generator generate a property bag for a given type. This attribute works for the specified type ONLY, it does NOT include derived types.
GeneratePropertyBagsForTypesQualifiedWithAttribute
Use this attribute to have the properties source generator generate property bags for types implementing the specified interface.
HashSetPropertyBag<TElement>
An IPropertyBag<TContainer> implementation for a HashSet<T> type.
IndexedCollectionPropertyBag<TList, TElement>
An IPropertyBag<TContainer> implementation for a generic collection of elements which can be accessed by index. This is based on the IList<T> interface.
InvalidContainerTypeException
The exception that is thrown when trying to visit an invalid container type.
InvalidPathException
The exception that is thrown when trying to resolve an invalid path.
KeyValueCollectionPropertyBag<TDictionary, TKey, TValue>
An IPropertyBag<TContainer> implementation for a generic collection of key/value pairs using the IDictionary<TKey,TValue> interface.
KeyValuePairPropertyBag<TKey, TValue>
A IPropertyBag<TContainer> implementation for a generic key/value pair.
ListPropertyBag<TElement>
A IPropertyBag<TContainer> implementation for a List<T> type.
MissingPropertyBagException
The exception that is thrown when trying to visit a container with no property bag.
PathVisitor
Helper visitor to visit a single property using a specified PropertyPath.
Property<TContainer, TValue>
Base class for implementing properties. This is an abstract class.
PropertyBag
The PropertyBag class provides access to registered property bag instances.
PropertyBag<TContainer>
Base class for implementing a property bag for a specified container type. This is an abstract class.
PropertyContainer
The PropertyContainer class is used as the entry point to operate on data containers using properties.
PropertyVisitor
Base class for implementing algorithms using properties. This is an abstract class.
ReflectedMemberProperty<TContainer, TValue>
A ReflectedMemberProperty<TContainer, TValue> provides strongly typed access to an underlying FieldInfo or PropertyInfo object.
SetPropertyBagBase<TSet, TElement>
A IPropertyBag<TContainer> implementation for a generic set of elements using the
TypeConversion
Helper class to handle type conversion during properties API calls.
TypeTraits
Helper class to avoid paying the cost of runtime type lookups.
TypeTraits<T>
Helper class to avoid paying the cost of runtime type lookups.
This is also used to abstract underlying type info in the runtime (e.g. RuntimeTypeHandle vs StaticTypeReg)
TypeUtility
Utility class around Type.
Structs
AttributesScope
Scope for using a given set of attributes.
ExcludeContext<TContainer>
Context object used during visitation to determine if a property should be visited or not.
ExcludeContext<TContainer, TValue>
Context object used during visitation to determine if a property should be visited or not.
PropertyCollection<TContainer>
The PropertyCollection<TContainer> struct provides enumerable access to all IProperty<TContainer> for a given PropertyBag<TContainer>.
PropertyCollection<TContainer>.Enumerator
An enumerator struct to enumerate all properties for the given
PropertyPath
A PropertyPath is used to store a reference to a single property within a tree.
PropertyPathPart
A PropertyPathPart represents a single element of the path.
VisitContext<TContainer>
Context object used during visitation when a IProperty<TContainer> is visited.
VisitContext<TContainer, TValue>
Context object used during visitation when a IProperty<TContainer> is visited.
VisitParameters
Custom parameters to use for visitation.
Interfaces
ICollectionElementProperty
Base interface for working with a collection element property.
ICollectionPropertyAccept<TCollection>
Interface for accepting collection property visitation.
ICollectionPropertyBag<TCollection, TElement>
Base untyped interface for implementing collection based property bags.
ICollectionPropertyBagAccept<TContainer>
Interface for accepting collection property bags visitation.
ICollectionPropertyBagVisitor
Interface for visiting property bags.
ICollectionPropertyVisitor
Interface for receiving strongly typed property callbacks for collections.
IDictionaryElementProperty
Interface over a property representing a untyped dictionary element.
IDictionaryElementProperty<TKey>
Interface over a property representing a typed dictionary element.
IDictionaryPropertyAccept<TDictionary>
Interface for accepting dictionary property visitation.
IDictionaryPropertyBag<TDictionary, TKey, TValue>
Base typed interface for implementing dictionary based property bags.
IDictionaryPropertyBagAccept<TContainer>
Interface for accepting list property bags visitation.
IDictionaryPropertyBagVisitor
Interface for visiting property bags.
IDictionaryPropertyVisitor
Interface for receiving strongly typed property callbacks for dictionaries.
IExcludeContravariantPropertyAdapter<TValue>
Implement this interface to filter visitation for a specific
IExcludeContravariantPropertyAdapter<TContainer, TValue>
Implement this interface to filter visitation for a specific
IExcludePropertyAdapter
Implement this interface to filter visitation.
IExcludePropertyAdapter<TValue>
Implement this interface to filter visitation for a specific
IExcludePropertyAdapter<TContainer, TValue>
Implement this interface to filter visitation for a specific
IIndexedProperties<TContainer>
This interface provides access to an IProperty<TContainer> of a IPropertyBag<TContainer> by index.
IKeyedProperties<TContainer, TKey>
This interface provides access to an IProperty<TContainer> of a IPropertyBag<TContainer> by a key.
IListElementProperty
Interface over a property representing a list element.
IListPropertyAccept<TList>
Interface for accepting list property visitation.
IListPropertyBag<TList, TElement>
Base typed interface for implementing list based property bags.
IListPropertyBagAccept<TContainer>
Interface for accepting list property bags visitation.
IListPropertyBagVisitor
Interface for visiting property bags.
IListPropertyVisitor
Interface for receiving strongly typed property callbacks for lists.
INamedProperties<TContainer>
This interface provides access to an IProperty<TContainer> of a IPropertyBag<TContainer> by name.
IProperty
Base interface for working with properties.
IProperty<TContainer>
Base interface for working with properties.
IPropertyAccept<TContainer>
Interface for accepting property visitation.
IPropertyBag
Base untyped interface for implementing property bags.
IPropertyBag<TContainer>
Base typed interface for implementing property bags.
IPropertyBagVisitor
Interface used to receive a visitation callbacks for property bags.
IPropertyVisitor
Interface for receiving strongly typed property callbacks.
IPropertyVisitorAdapter
The base interface representing an adapter.
ISetElementProperty
Interface over a property representing a set element.
ISetElementProperty<TKey>
Interface over a property representing a set element.
ISetPropertyAccept<TSet>
Interface for accepting hash set property visitation.
ISetPropertyBag<TSet, TElement>
Base typed interface for implementing set based property bags.
ISetPropertyBagAccept<TContainer>
Interface for accepting list property bags visitation.
ISetPropertyBagVisitor
Interface for visiting property bags.
ISetPropertyVisitor
Interface for receiving strongly typed property callbacks for sets.
ITypeVisitor
Interface used to receive a visitation callbacks for a specific type.
IVisitContravariantPropertyAdapter<TValue>
Implement this interface to intercept the visitation for a specific
IVisitContravariantPropertyAdapter<TContainer, TValue>
Implement this interface to intercept the visitation for a specific
IVisitPrimitivesPropertyAdapter
Implement this interface to intercept the visitation of any primitive type.
IVisitPropertyAdapter
Implement this interface to handle visitation for all properties.
IVisitPropertyAdapter<TValue>
Implement this interface to intercept the visitation for a specific
IVisitPropertyAdapter<TContainer, TValue>
Implement this interface to intercept the visitation for a specific
Enums
InstantiationKind
Describes how a new instance is created.
PropertyPathPartKind
A PropertyPathPartKind specifies a type for a PropertyPathPart.
TypeGenerationOptions
A set of options to customize the behaviour of the code generator.
VisitExceptionKind
Flags used to specify a set of exceptions.
VisitReturnCode
Internal return code used during path visitation.
Delegates
PropertyGetter<TContainer, TValue>
Represents the method that will handle getting a TValue
type for a specified container
.
PropertySetter<TContainer, TValue>
Represents the method that will handle setting a specified value
for a specified container
.
TypeConverter<TSource, TDestination>
Represents the method that will handle converting an object of type TSource
to an object of type TDestination
.