#### [DiGi\.Core\.Parameter](DiGi.Core.Parameter.Overview.md 'DiGi\.Core\.Parameter\.Overview')
## DiGi\.Core\.Parameter\.Classes Namespace
### Classes
## AssociatedTypes Class
Defines a set of types associated with an enum value\.
```csharp
public class AssociatedTypes : System.Attribute, System.Collections.IEnumerable, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → AssociatedTypes
Implements [System\.Collections\.IEnumerable](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable 'System\.Collections\.IEnumerable'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## AssociatedTypes\(AssociatedTypes\) Constructor
Initializes a new instance of the AssociatedTypes class by copying another AssociatedTypes instance\.
```csharp
public AssociatedTypes(DiGi.Core.Parameter.Classes.AssociatedTypes? associatedTypes);
```
#### Parameters
`associatedTypes` [AssociatedTypes](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.AssociatedTypes 'DiGi\.Core\.Parameter\.Classes\.AssociatedTypes')
The AssociatedTypes instance to copy\.
## AssociatedTypes\(JsonObject\) Constructor
Initializes a new instance of the AssociatedTypes class from a JSON object\.
```csharp
public AssociatedTypes(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing associated types data\.
## AssociatedTypes\(Type\[\]\) Constructor
Initializes a new instance of the AssociatedTypes class with specified values\.
```csharp
public AssociatedTypes(params System.Type[]? values);
```
#### Parameters
`values` [System\.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type 'System\.Type')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
The associated types\.
### Properties
## AssociatedTypes\.Types Property
Gets the collection of associated types\.
```csharp
public System.Type[]? Types { get; }
```
#### Property Value
[System\.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type 'System\.Type')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
### Methods
## AssociatedTypes\.Clone\(\) Method
Creates a shallow copy of the current AssociatedTypes instance\.
```csharp
public virtual DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A cloned ISerializableObject\.
## AssociatedTypes\.FromJsonObject\(JsonObject\) Method
Populates the current AssociatedTypes instance from a JSON object\.
```csharp
public virtual bool FromJsonObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to read data from\.
Implements [FromJsonObject\(JsonObject\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.fromjsonobject#digi-core-interfaces-iserializableobject-fromjsonobject(system-text-json-nodes-jsonobject) 'DiGi\.Core\.Interfaces\.ISerializableObject\.FromJsonObject\(System\.Text\.Json\.Nodes\.JsonObject\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if successful, false otherwise\.
## AssociatedTypes\.GetEnumerator\(\) Method
Returns an enumerator that iterates through the associated types\.
```csharp
public System.Collections.IEnumerator GetEnumerator();
```
Implements [GetEnumerator\(\)](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable.getenumerator 'System\.Collections\.IEnumerable\.GetEnumerator')
#### Returns
[System\.Collections\.IEnumerator](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerator 'System\.Collections\.IEnumerator')
An IEnumerator for the Types collection\.
## AssociatedTypes\.IsValid\(Type\) Method
Determines whether a specified type is associated with this instance\.
```csharp
public virtual bool IsValid(System.Type? type);
```
#### Parameters
`type` [System\.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type 'System\.Type')
The type to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the type is valid, false otherwise\.
## AssociatedTypes\.ToJsonObject\(\) Method
Converts the current AssociatedTypes instance to a JSON object\.
```csharp
public virtual System.Text.Json.Nodes.JsonObject? ToJsonObject();
```
Implements [ToJsonObject\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.tojsonobject 'DiGi\.Core\.Interfaces\.ISerializableObject\.ToJsonObject')
#### Returns
[System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The resulting JsonObject\.
## BooleanParameterValue Class
Represents a boolean value for a parameter\.
```csharp
public class BooleanParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → BooleanParameterValue
### Constructors
## BooleanParameterValue\(\) Constructor
Initializes a new instance of the [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue') class\.
```csharp
public BooleanParameterValue();
```
## BooleanParameterValue\(bool\) Constructor
Initializes a new instance of the [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue') class with specified nullability\.
```csharp
public BooleanParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
## BooleanParameterValue\(BooleanParameterValue\) Constructor
Initializes a new instance of the [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue') class by copying an existing value\.
```csharp
public BooleanParameterValue(DiGi.Core.Parameter.Classes.BooleanParameterValue? booleanParameterValue);
```
#### Parameters
`booleanParameterValue` [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue')
The BooleanParameterValue to copy\.
## BooleanParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue') class from a JSON object\.
```csharp
public BooleanParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the current instance from\.
### Properties
## BooleanParameterValue\.ParameterType Property
Gets the type of the parameter, which is Integer\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## BooleanParameterValue\.Clone\(\) Method
Creates a shallow copy of the current integer parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A shallow copy of the current integer parameter value\.
## BooleanParameterValue\.IsValid\(object\) Method
Determines whether the specified value is a valid integer parameter value\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the specified value is a valid integer parameter value; otherwise, false\.
## BooleanParameterValue\.TryConvert\(object, object\) Method
Attempts to convert the specified input value to an integer parameter value\.
```csharp
public override bool TryConvert(object? value_In, out object? value_Out);
```
#### Parameters
`value_In` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The input value to be converted\.
`value_Out` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the converted value if successful; otherwise, null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the conversion was successful; otherwise, false\.
## ComplexParameterDefinition Class
Represents the abstract base class for complex parameter definitions\.
```csharp
public abstract class ComplexParameterDefinition : DiGi.Core.Parameter.Classes.ParameterDefinition
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') → ComplexParameterDefinition
Derived
↳ [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition')
↳ [ExternalParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ExternalParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ExternalParameterDefinition')
### Constructors
## ComplexParameterDefinition\(\) Constructor
Creates a new instance of the ComplexParameterDefinition class\.
```csharp
public ComplexParameterDefinition();
```
## ComplexParameterDefinition\(ComplexParameterDefinition\) Constructor
Creates a new instance of the ComplexParameterDefinition class by copying another ComplexParameterDefinition\.
```csharp
public ComplexParameterDefinition(DiGi.Core.Parameter.Classes.ComplexParameterDefinition? complexParameterDefinition);
```
#### Parameters
`complexParameterDefinition` [ComplexParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ComplexParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ComplexParameterDefinition')
The ComplexParameterDefinition to copy\.
## ComplexParameterDefinition\(JsonObject\) Constructor
Creates a new instance of the ComplexParameterDefinition class from a JSON object\.
```csharp
public ComplexParameterDefinition(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the complex parameter definition data\.
### Properties
## ComplexParameterDefinition\.AccessType Property
Gets the access type of the complex parameter definition\.
```csharp
public abstract DiGi.Core.Parameter.Enums.AccessType AccessType { get; }
```
#### Property Value
[AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
## ComplexParameterDefinition\.AssociatedTypes Property
Gets the associated types of the complex parameter definition\.
```csharp
public abstract DiGi.Core.Parameter.Classes.AssociatedTypes? AssociatedTypes { get; }
```
#### Property Value
[AssociatedTypes](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.AssociatedTypes 'DiGi\.Core\.Parameter\.Classes\.AssociatedTypes')
## ComplexParameterDefinition\.Description Property
Gets the description of the complex parameter definition\.
```csharp
public abstract string? Description { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ComplexParameterDefinition\.ParameterType Property
Gets the type of the parameter\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
Implements [ParameterType](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.ParameterType 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.ParameterType')
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
## ComplexParameterDefinition\.ParameterValue Property
Gets the parameter value of the complex parameter definition\.
```csharp
public abstract DiGi.Core.Parameter.Classes.ParameterValue? ParameterValue { get; }
```
#### Property Value
[ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue')
### Methods
## ComplexParameterDefinition\.IsValid\(object\) Method
Determines whether the specified value is valid for this complex parameter definition\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
Implements [IsValid\(object\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.IsValid(object) 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.IsValid\(object\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid, false otherwise\.
## DoubleParameterValue Class
Represents a double\-precision floating\-point value for a parameter\.
```csharp
public class DoubleParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → DoubleParameterValue
### Constructors
## DoubleParameterValue\(\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class\.
```csharp
public DoubleParameterValue();
```
## DoubleParameterValue\(bool\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class with specified nullability\.
```csharp
public DoubleParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
## DoubleParameterValue\(bool, double, double\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class with specified nullability and range\.
```csharp
public DoubleParameterValue(bool nullable, double min, double max);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
`min` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The minimum value for the parameter\.
`max` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The maximum value for the parameter\.
## DoubleParameterValue\(DoubleParameterValue\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class by copying an existing value\.
```csharp
public DoubleParameterValue(DiGi.Core.Parameter.Classes.DoubleParameterValue? doubleParameterValue);
```
#### Parameters
`doubleParameterValue` [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue')
The existing value to copy from\.
## DoubleParameterValue\(double\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class with a minimum value\.
```csharp
public DoubleParameterValue(double min);
```
#### Parameters
`min` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The minimum value for the parameter\.
## DoubleParameterValue\(double, double\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class with a specified range\.
```csharp
public DoubleParameterValue(double min, double max);
```
#### Parameters
`min` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The minimum value for the parameter\.
`max` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The maximum value for the parameter\.
## DoubleParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue') class from a JSON object\.
```csharp
public DoubleParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the value from\.
### Properties
## DoubleParameterValue\.ParameterType Property
Gets the type of the parameter, which is Integer\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## DoubleParameterValue\.Clone\(\) Method
Creates a shallow copy of the current integer parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A shallow copy of the current integer parameter value\.
## DoubleParameterValue\.IsValid\(object\) Method
Determines whether the specified value is a valid integer parameter value\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the specified value is a valid integer parameter value; otherwise, false\.
## DoubleParameterValue\.TryConvert\(object, object\) Method
Attempts to convert the specified input value to an integer parameter value\.
```csharp
public override bool TryConvert(object? value_In, out object? value_Out);
```
#### Parameters
`value_In` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The input value to be converted\.
`value_Out` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the converted value if successful; otherwise, null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the conversion was successful; otherwise, false\.
## EnumParameterDefinition Class
Defines a parameter based on an enumeration type\.
```csharp
public class EnumParameterDefinition : DiGi.Core.Parameter.Classes.ComplexParameterDefinition
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') → [ComplexParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ComplexParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ComplexParameterDefinition') → EnumParameterDefinition
### Constructors
## EnumParameterDefinition\(\) Constructor
Initializes a new instance of the [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') class\.
```csharp
public EnumParameterDefinition();
```
## EnumParameterDefinition\(EnumParameterDefinition\) Constructor
Initializes a new instance of the [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') class by copying an existing definition\.
```csharp
public EnumParameterDefinition(DiGi.Core.Parameter.Classes.EnumParameterDefinition? enumParameterDefinition);
```
#### Parameters
`enumParameterDefinition` [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition')
The existing enum parameter definition to copy\.
## EnumParameterDefinition\(Enum\) Constructor
Initializes a new instance of the [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') class based on a specific enumeration value\.
```csharp
public EnumParameterDefinition(System.Enum? @enum);
```
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration value to use for initialization\.
## EnumParameterDefinition\(JsonObject\) Constructor
Initializes a new instance of the [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') class from a JSON object\.
```csharp
public EnumParameterDefinition(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object used to initialize the parameter definition\.
### Properties
## EnumParameterDefinition\.AccessType Property
Gets the access type for the enum parameter\.
```csharp
public override DiGi.Core.Parameter.Enums.AccessType AccessType { get; }
```
#### Property Value
[AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
## EnumParameterDefinition\.AssociatedTypes Property
Gets the associated types for the enum parameter\.
```csharp
public override DiGi.Core.Parameter.Classes.AssociatedTypes? AssociatedTypes { get; }
```
#### Property Value
[AssociatedTypes](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.AssociatedTypes 'DiGi\.Core\.Parameter\.Classes\.AssociatedTypes')
## EnumParameterDefinition\.Description Property
Gets or sets the description of the enum parameter\.
```csharp
public override string? Description { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## EnumParameterDefinition\.GroupName Property
Gets the group name to which the enum parameter belongs\.
```csharp
public override string GroupName { get; }
```
Implements [GroupName](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.GroupName 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.GroupName')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## EnumParameterDefinition\.Name Property
Gets or sets the name of the enum parameter\.
```csharp
public override string? Name { get; }
```
Implements [Name](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject.name 'DiGi\.Core\.Interfaces\.INamedObject\.Name')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## EnumParameterDefinition\.ParameterValue Property
Gets or sets the current value of the enum parameter\.
```csharp
public override DiGi.Core.Parameter.Classes.ParameterValue? ParameterValue { get; }
```
#### Property Value
[ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue')
## EnumParameterDefinition\.UniqueId Property
Gets or sets the unique identifier for the enum parameter\.
```csharp
public override string? UniqueId { get; }
```
Implements [UniqueId](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.UniqueId 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## EnumParameterDefinition\.Clone\(\) Method
Creates a copy of the current enum parameter definition\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A clone of the current enum parameter definition as an [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')\.
## EnumParameterDefinition\.FromJsonObject\(JsonObject\) Method
Populates the enum parameter definition from a JSON object\.
```csharp
public override bool FromJsonObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to populate the definition from\.
Implements [FromJsonObject\(JsonObject\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.fromjsonobject#digi-core-interfaces-iserializableobject-fromjsonobject(system-text-json-nodes-jsonobject) 'DiGi\.Core\.Interfaces\.ISerializableObject\.FromJsonObject\(System\.Text\.Json\.Nodes\.JsonObject\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the population was successful; otherwise, `false`\.
## EnumParameterDefinition\.ToJsonObject\(\) Method
Converts the enum parameter definition to a JSON object\.
```csharp
public override System.Text.Json.Nodes.JsonObject ToJsonObject();
```
Implements [ToJsonObject\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.tojsonobject 'DiGi\.Core\.Interfaces\.ISerializableObject\.ToJsonObject')
#### Returns
[System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
A [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject') representation of the enum parameter definition\.
### Operators
## EnumParameterDefinition\.explicit operator EnumParameterDefinition\(Enum\) Operator
Explicitly converts an [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum') to an [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition')\.
```csharp
public static DiGi.Core.Parameter.Classes.EnumParameterDefinition? explicit operator DiGi.Core.Parameter.Classes.EnumParameterDefinition?(System.Enum? @enum);
```
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enum value to convert\.
#### Returns
[EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition')
An [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') instance created from the provided enum, or `null` if the input is `null`\.
## EnumParameterDefinition\.explicit operator Enum\(EnumParameterDefinition\) Operator
Explicitly converts an [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition') to its underlying [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum') value\.
```csharp
public static System.Enum? explicit operator System.Enum?(DiGi.Core.Parameter.Classes.EnumParameterDefinition? enumParameterDefinition);
```
#### Parameters
`enumParameterDefinition` [EnumParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.EnumParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.EnumParameterDefinition')
The enum parameter definition to convert\.
#### Returns
[System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum') value associated with the definition, or `null` if the input is `null`\.
## ExternalParameterDefinition Class
Represents a parameter definition defined externally with explicit metadata\.
```csharp
public class ExternalParameterDefinition : DiGi.Core.Parameter.Classes.ComplexParameterDefinition, DiGi.Core.Interfaces.INamedObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') → [ComplexParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ComplexParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ComplexParameterDefinition') → ExternalParameterDefinition
Implements [DiGi\.Core\.Interfaces\.INamedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject 'DiGi\.Core\.Interfaces\.INamedObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## ExternalParameterDefinition\(\) Constructor
Creates a new instance of the ExternalParameterDefinition class\.
```csharp
public ExternalParameterDefinition();
```
## ExternalParameterDefinition\(ExternalParameterDefinition\) Constructor
Creates a new instance of the ExternalParameterDefinition class by copying another ExternalParameterDefinition\.
```csharp
public ExternalParameterDefinition(DiGi.Core.Parameter.Classes.ExternalParameterDefinition? externalParameterDefinition);
```
#### Parameters
`externalParameterDefinition` [ExternalParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ExternalParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ExternalParameterDefinition')
The ExternalParameterDefinition to copy\.
## ExternalParameterDefinition\(Guid, string, string, AccessType, ParameterValue, AssociatedTypes, string\) Constructor
Creates a new instance of the ExternalParameterDefinition class with the specified parameters\.
```csharp
public ExternalParameterDefinition(System.Guid guid, string? name, string? description, DiGi.Core.Parameter.Enums.AccessType accessType, DiGi.Core.Parameter.Classes.ParameterValue? parameterValue, DiGi.Core.Parameter.Classes.AssociatedTypes associatedTypes, string? groupName);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier\.
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name\.
`description` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The description\.
`accessType` [AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
The access type\.
`parameterValue` [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue')
The parameter value\.
`associatedTypes` [AssociatedTypes](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.AssociatedTypes 'DiGi\.Core\.Parameter\.Classes\.AssociatedTypes')
The associated types\.
`groupName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The group name\.
## ExternalParameterDefinition\(JsonObject\) Constructor
Creates a new instance of the ExternalParameterDefinition class from a JSON object\.
```csharp
public ExternalParameterDefinition(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the external parameter definition data\.
### Properties
## ExternalParameterDefinition\.AccessType Property
Gets the access type of the external parameter definition\.
```csharp
public override DiGi.Core.Parameter.Enums.AccessType AccessType { get; }
```
#### Property Value
[AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
## ExternalParameterDefinition\.AssociatedTypes Property
Gets the associated types of the external parameter definition\.
```csharp
public override DiGi.Core.Parameter.Classes.AssociatedTypes? AssociatedTypes { get; }
```
#### Property Value
[AssociatedTypes](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.AssociatedTypes 'DiGi\.Core\.Parameter\.Classes\.AssociatedTypes')
## ExternalParameterDefinition\.Description Property
Gets the description of the external parameter definition\.
```csharp
public override string? Description { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ExternalParameterDefinition\.GroupName Property
Gets the group name of the external parameter definition\.
```csharp
public override string? GroupName { get; }
```
Implements [GroupName](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.GroupName 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.GroupName')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ExternalParameterDefinition\.Name Property
Gets the name of the external parameter definition\.
```csharp
public override string? Name { get; }
```
Implements [Name](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject.name 'DiGi\.Core\.Interfaces\.INamedObject\.Name')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ExternalParameterDefinition\.ParameterValue Property
Gets the parameter value of the external parameter definition\.
```csharp
public override DiGi.Core.Parameter.Classes.ParameterValue? ParameterValue { get; }
```
#### Property Value
[ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue')
## ExternalParameterDefinition\.UniqueId Property
Gets the unique identifier of the external parameter definition\.
```csharp
public override string UniqueId { get; }
```
Implements [UniqueId](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.UniqueId 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## ExternalParameterDefinition\.IsValid\(object\) Method
Determines whether the specified value is valid for this external parameter definition\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
Implements [IsValid\(object\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.IsValid(object) 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.IsValid\(object\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid, false otherwise\.
## GetValueSettings Class
Contains settings for retrieving a parameter value\.
```csharp
public class GetValueSettings
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → GetValueSettings
### Constructors
## GetValueSettings\(\) Constructor
Initializes a new instance of the GetValueSettings class\.
```csharp
public GetValueSettings();
```
## GetValueSettings\(bool, bool\) Constructor
Initializes a new instance of the GetValueSettings class with specified options\.
```csharp
public GetValueSettings(bool tryConvert, bool checkAccessType);
```
#### Parameters
`tryConvert` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Whether to attempt conversion if types do not match\.
`checkAccessType` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Whether to check for read access permissions\.
### Properties
## GetValueSettings\.CheckAccessType Property
Gets or sets a value indicating whether the access type should be checked during retrieval\.
```csharp
public bool CheckAccessType { get; set; }
```
#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
## GetValueSettings\.TryConvert Property
Gets or sets a value indicating whether to attempt conversion of the value during retrieval\.
```csharp
public bool TryConvert { get; set; }
```
#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
## GuidParameterValue Class
Represents a GUID value for a parameter\.
```csharp
public class GuidParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → GuidParameterValue
### Constructors
## GuidParameterValue\(\) Constructor
Initializes a new instance of the [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue') class\.
```csharp
public GuidParameterValue();
```
## GuidParameterValue\(bool\) Constructor
Initializes a new instance of the [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue') class with specified nullability\.
```csharp
public GuidParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
## GuidParameterValue\(GuidParameterValue\) Constructor
Initializes a new instance of the [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue') class by copying an existing value\.
```csharp
public GuidParameterValue(DiGi.Core.Parameter.Classes.GuidParameterValue? guidParameterValue);
```
#### Parameters
`guidParameterValue` [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue')
The existing value to copy\.
## GuidParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue') class from a JSON object\.
```csharp
public GuidParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize from\.
### Properties
## GuidParameterValue\.ParameterType Property
Gets the type of the parameter, which is Integer\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## GuidParameterValue\.Clone\(\) Method
Creates a shallow copy of the current integer parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A shallow copy of the current object\.
## IntegerParameterValue Class
Represents an integer value for a parameter\.
```csharp
public class IntegerParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → IntegerParameterValue
### Constructors
## IntegerParameterValue\(\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class\.
```csharp
public IntegerParameterValue();
```
## IntegerParameterValue\(bool\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class with specified nullability\.
```csharp
public IntegerParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Indicates whether the value can be null\.
## IntegerParameterValue\(bool, int, int\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class with specified nullability and range\.
```csharp
public IntegerParameterValue(bool nullable, int min, int max);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Indicates whether the value can be null\.
`min` [System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The minimum value for the parameter\.
`max` [System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The maximum value for the parameter\.
## IntegerParameterValue\(IntegerParameterValue\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class by copying an existing value\.
```csharp
public IntegerParameterValue(DiGi.Core.Parameter.Classes.IntegerParameterValue? integerParameterValue);
```
#### Parameters
`integerParameterValue` [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue')
The existing integer parameter value to copy\.
## IntegerParameterValue\(int\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class with a minimum value\.
```csharp
public IntegerParameterValue(int min);
```
#### Parameters
`min` [System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The minimum value for the parameter\.
## IntegerParameterValue\(int, int\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class with a specified range\.
```csharp
public IntegerParameterValue(int min, int max);
```
#### Parameters
`min` [System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The minimum value for the parameter\.
`max` [System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The maximum value for the parameter\.
## IntegerParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue') class from a JSON object\.
```csharp
public IntegerParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the value from\.
### Properties
## IntegerParameterValue\.ParameterType Property
Gets the type of the parameter, which is Integer\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## IntegerParameterValue\.Clone\(\) Method
Creates a shallow copy of the current integer parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A shallow copy of the current object\.
## IntegerParameterValue\.IsValid\(object\) Method
Determines whether the specified value is a valid integer parameter value\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid; otherwise, false\.
## IntegerParameterValue\.TryConvert\(object, object\) Method
Attempts to convert the specified input value to an integer parameter value\.
```csharp
public override bool TryConvert(object? value_In, out object? value_Out);
```
#### Parameters
`value_In` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The input value to convert\.
`value_Out` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the converted value if successful; otherwise, null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the conversion was successful; otherwise, false\.
## ObjectParameterValue Class
Represents a parameter value that can hold an object of one or more specified types\.
```csharp
public class ObjectParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → ObjectParameterValue
### Constructors
## ObjectParameterValue\(\) Constructor
Initializes a new instance of the [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue') class\.
```csharp
public ObjectParameterValue();
```
## ObjectParameterValue\(bool, bool, Type\[\]\) Constructor
Initializes a new instance of the [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue') class with specified nullability, inheritance rules, and allowed types\.
```csharp
public ObjectParameterValue(bool nullable, bool inheritance, params System.Type[] types);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Specifies whether the value can be null\.
`inheritance` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Specifies whether inheritance is considered when validating types\.
`types` [System\.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type 'System\.Type')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
The collection of allowed types for this parameter value\.
## ObjectParameterValue\(ObjectParameterValue\) Constructor
Initializes a new instance of the [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue') class by copying an existing instance\.
```csharp
public ObjectParameterValue(DiGi.Core.Parameter.Classes.ObjectParameterValue? objectParameterValue);
```
#### Parameters
`objectParameterValue` [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue')
The existing instance to copy\.
## ObjectParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue') class from a JSON object\.
```csharp
public ObjectParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the current instance with\.
### Properties
## ObjectParameterValue\.ParameterType Property
Gets the parameter type associated with this string parameter value\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## ObjectParameterValue\.Clone\(\) Method
Creates a clone of the current string parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A new instance of [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject') that is a copy of the current object\.
## ObjectParameterValue\.IsValid\(object\) Method
Determines whether the specified value is valid for this parameter\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid; otherwise, false\.
## ObjectParameterValue\.TryConvert\(object, object\) Method
Attempts to convert the specified input value to a compatible output value\.
```csharp
public override bool TryConvert(object? value_In, out object? value_Out);
```
#### Parameters
`value_In` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The input value to be converted\.
`value_Out` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the converted value if successful; otherwise, null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the conversion was successful; otherwise, false\.
## Parameter Class
Represents a parameter with a definition and a value\.
```csharp
public class Parameter : DiGi.Core.Classes.SerializableObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → Parameter
### Constructors
## Parameter\(Parameter\) Constructor
Creates a new instance of the Parameter class by copying another Parameter\.
```csharp
public Parameter(DiGi.Core.Parameter.Classes.Parameter? parameter);
```
#### Parameters
`parameter` [Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')
The Parameter to copy\.
## Parameter\(IParameterDefinition\) Constructor
Creates a new instance of the Parameter class with the specified parameter definition\.
```csharp
internal Parameter(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition\.
## Parameter\(IParameterDefinition, object\) Constructor
Creates a new instance of the Parameter class with the specified parameter definition and value\.
```csharp
internal Parameter(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, object? value);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The parameter value\.
## Parameter\(JsonObject\) Constructor
Creates a new instance of the Parameter class from a JSON object\.
```csharp
public Parameter(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the parameter data\.
### Properties
## Parameter\.Name Property
Gets the name of the parameter\.
```csharp
public string? Name { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## Parameter\.ParameterDefinition Property
Gets the parameter definition\.
```csharp
public DiGi.Core.Parameter.Interfaces.IParameterDefinition? ParameterDefinition { get; }
```
#### Property Value
[IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
## Parameter\.ParameterType Property
Gets the type of the parameter\.
```csharp
public DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
## Parameter\.UniqueId Property
Gets the unique identifier of the parameter\.
```csharp
public string? UniqueId { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## Parameter\.Value Property
Gets the value of the parameter\.
```csharp
public object? Value { get; }
```
#### Property Value
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
### Methods
## Parameter\.Clone\(\) Method
Creates a deep copy of the Parameter\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A new cloned instance of the Parameter\.
## Parameter\.GetValue\\(GetValueSettings\) Method
Gets the value of the parameter, converted to the specified type\.
```csharp
public T? GetValue(DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type to convert the value to\.
#### Parameters
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter.GetValue_T_(DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.Parameter\.GetValue\\(DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The converted value, or default if conversion fails\.
## Parameter\.SetValue\(object, SetValueSettings\) Method
Sets the value of the parameter\.
```csharp
public bool SetValue(object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to set\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings for setting the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set, false otherwise\.
## Parameter\.TryGetValue\\(T, GetValueSettings\) Method
Tries to get the value of the parameter, converted to the specified type\.
```csharp
public bool TryGetValue(out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type to convert the value to\.
#### Parameters
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter.TryGetValue_T_(T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.Parameter\.TryGetValue\\(T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The converted value, or default if conversion fails\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved, false otherwise\.
## ParameterDefinition Class
Provides a base class for defining parameters\.
```csharp
public abstract class ParameterDefinition : DiGi.Core.Classes.SerializableObject, DiGi.Core.Parameter.Interfaces.IParameterDefinition, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, System.IEquatable, DiGi.Core.Interfaces.INamedObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → ParameterDefinition
Derived
↳ [ComplexParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ComplexParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ComplexParameterDefinition')
↳ [SimpleParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SimpleParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.SimpleParameterDefinition')
Implements [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [System\.IEquatable<](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1'), [DiGi\.Core\.Interfaces\.INamedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject 'DiGi\.Core\.Interfaces\.INamedObject')
### Constructors
## ParameterDefinition\(\) Constructor
Initializes a new instance of the [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') class\.
```csharp
public ParameterDefinition();
```
## ParameterDefinition\(ParameterDefinition\) Constructor
Initializes a new instance of the [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') class by copying an existing definition\.
```csharp
public ParameterDefinition(DiGi.Core.Parameter.Classes.ParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition')
The parameter definition to copy from\.
## ParameterDefinition\(JsonObject\) Constructor
Initializes a new instance of the [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') class from a JSON object\.
```csharp
public ParameterDefinition(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the definition from\.
### Properties
## ParameterDefinition\.GroupName Property
Gets the group name to which the parameter belongs\.
```csharp
public abstract string? GroupName { get; }
```
Implements [GroupName](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.GroupName 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.GroupName')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterDefinition\.Name Property
Gets or sets the name of the parameter\.
```csharp
public abstract string? Name { get; }
```
Implements [Name](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject.name 'DiGi\.Core\.Interfaces\.INamedObject\.Name')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterDefinition\.ParameterType Property
Gets the type of the parameter\.
```csharp
public abstract DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
Implements [ParameterType](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.ParameterType 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.ParameterType')
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
## ParameterDefinition\.UniqueId Property
Gets or sets the unique identifier for the parameter\.
```csharp
public abstract string? UniqueId { get; }
```
Implements [UniqueId](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.UniqueId 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## ParameterDefinition\.Equals\(IParameterDefinition\) Method
Determines whether the specified parameter definition is equal to the current instance\.
```csharp
public bool Equals(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition to compare with the current instance\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the specified parameter definition is equal to the current instance; otherwise, false\.
## ParameterDefinition\.IsValid\(object\) Method
Validates whether the provided value is valid for this parameter definition\.
```csharp
public virtual bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
Implements [IsValid\(object\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.IsValid(object) 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.IsValid\(object\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid; otherwise, false\.
## ParameterGroup Class
Represents a group of parameters\.
```csharp
public class ParameterGroup : DiGi.Core.Classes.SerializableObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → ParameterGroup
Implements [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1'), [System\.Collections\.IEnumerable](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable 'System\.Collections\.IEnumerable')
### Constructors
## ParameterGroup\(ParameterGroup\) Constructor
Initializes a new instance of the [ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup') class by copying another group\.
```csharp
public ParameterGroup(DiGi.Core.Parameter.Classes.ParameterGroup? parameterGroup);
```
#### Parameters
`parameterGroup` [ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup')
The parameter group to copy from\.
## ParameterGroup\(string\) Constructor
Initializes a new instance of the [ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup') class with a specified name\.
```csharp
public ParameterGroup(string? name);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter group\.
## ParameterGroup\(string, IEnumerable\\) Constructor
Initializes a new instance of the [ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup') class with a specified name and a collection of parameters\.
```csharp
public ParameterGroup(string? name, System.Collections.Generic.IEnumerable? parameters);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter group\.
`parameters` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of parameters to include in the group\.
## ParameterGroup\(JsonObject\) Constructor
Initializes a new instance of the [ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup') class from a JSON object\.
```csharp
public ParameterGroup(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the group from\.
### Properties
## ParameterGroup\.Name Property
Gets or sets the display name of the parameter\.
```csharp
public string? Name { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## ParameterGroup\.Clone\(\) Method
Creates a deep copy of the current parameter group\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A deep copy of the current parameter group\.
## ParameterGroup\.Contains\(IParameterDefinition\) Method
Determines whether any group in the collection contains a parameter matching the specified definition\.
```csharp
public bool Contains(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the collection contains a parameter matching the specified definition; otherwise, false\.
## ParameterGroup\.Contains\(string\) Method
Determines whether any group in the collection contains a parameter with the specified unique identifier\.
```csharp
public bool Contains(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the collection contains a parameter with the specified unique identifier; otherwise, false\.
## ParameterGroup\.GetEnumerator\(\) Method
Returns an enumerator that iterates through the parameters in the group\.
```csharp
public System.Collections.Generic.IEnumerator GetEnumerator();
```
Implements [GetEnumerator\(\)](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1.getenumerator 'System\.Collections\.Generic\.IEnumerable\`1\.GetEnumerator'), [GetEnumerator\(\)](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable.getenumerator 'System\.Collections\.IEnumerable\.GetEnumerator')
#### Returns
[System\.Collections\.Generic\.IEnumerator<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerator-1 'System\.Collections\.Generic\.IEnumerator\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerator-1 'System\.Collections\.Generic\.IEnumerator\`1')
An enumerator that iterates through the parameters in the group\.
## ParameterGroup\.GetParameterDefinitions\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions that match the specified name and comparison criteria\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? name, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use when matching the name\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the name comparison is case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions that match the specified criteria, or null if no matches are found\.
## ParameterGroup\.GetParameterDefinitions\\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetParameterDefinitions_T_(string,DiGi.Core.Enums.TextComparisonType,bool).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.T') that match the specified name and comparison criteria\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? name, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true)
where T : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`T`
The type of parameter definitions to retrieve\.
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use when matching the name\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the name comparison is case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetParameterDefinitions_T_(string,DiGi.Core.Enums.TextComparisonType,bool).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetParameterDefinitions_T_(string,DiGi.Core.Enums.TextComparisonType,bool).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.T') that match the specified criteria, or null if no matches are found\.
## ParameterGroup\.GetParameterDefinitions\\(\) Method
Retrieves a list of parameter definitions of the specified type within the group\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions()
where TParameterDefinition : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`TParameterDefinition`
The type of parameter definition to retrieve\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetParameterDefinitions_TParameterDefinition_().TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetParameterDefinitions\\(\)\.TParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions of the specified type, or null if none are found\.
## ParameterGroup\.GetValue\(IParameterDefinition, GetValueSettings\) Method
Gets the value associated with the specified parameter definition from the collection\.
```csharp
public object? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition to retrieve the value for\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified parameter definition, or null if not found\.
## ParameterGroup\.GetValue\(string, GetValueSettings\) Method
Gets the value associated with the specified unique identifier from the collection\.
```csharp
public object? GetValue(string? uniqueId, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to get\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified unique identifier, or null if not found\.
## ParameterGroup\.GetValue\\(IParameterDefinition, GetValueSettings\) Method
Gets the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition from the collection\.
```csharp
public T? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter whose value is to be retrieved\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to control how the value is retrieved\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The value associated with the specified parameter definition, or the default value for type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if not found\.
## ParameterGroup\.GetValue\\(string, GetValueSettings\) Method
Gets the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(string,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(string, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified unique identifier\.
```csharp
public T? GetValue(string? uniqueId, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to get\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(string,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(string, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.GetValue_T_(string,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.GetValue\\(string, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified unique identifier, or null if not found\.
## ParameterGroup\.Remove\(IParameterDefinition\) Method
Removes the parameter matching the specified definition from the collection\.
```csharp
public bool Remove(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter to remove\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParameterGroup\.Remove\(string\) Method
Removes the parameter with the specified unique identifier from the group\.
```csharp
public bool Remove(string uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to remove\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParameterGroup\.SetValue\(Parameter\) Method
Adds or updates a parameter in the collection\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Classes.Parameter? parameter);
```
#### Parameters
`parameter` [Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')
The parameter to add or update\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the operation was successful; otherwise, false\.
## ParameterGroup\.SetValue\(IParameterDefinition, object, SetValueSettings\) Method
Sets the value for the parameter matching the specified definition within the collection\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter to set\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to assign to the parameter\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings to control how the value is set\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParameterGroup\.SetValue\(string, object, SetValueSettings\) Method
Sets the value for the parameter identified by the specified name within the collection\.
```csharp
public bool SetValue(string? name, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter to set\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to assign to the parameter\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings to control how the value is set\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParameterGroup\.TryGetValue\(IParameterDefinition, object, GetValueSettings\) Method
Attempts to get the value associated with the specified parameter definition from the collection\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition for which to retrieve the value\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the retrieved value if found; otherwise, null\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParameterGroup\.TryGetValue\(string, object, GetValueSettings\) Method
Attempts to get the value associated with the specified unique identifier from the collection\.
```csharp
public bool TryGetValue(string? uniqueId, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter for which to retrieve the value\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the retrieved value if found; otherwise, null\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParameterGroup\.TryGetValue\\(IParameterDefinition, T, GetValueSettings\) Method
Attempts to get the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition from the collection\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition for which to retrieve the value\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the retrieved value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if found; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParameterGroup\.TryGetValue\\(string, T, GetValueSettings\) Method
Attempts to get the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified unique identifier from the collection\.
```csharp
public bool TryGetValue(string? uniqueId, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter for which to retrieve the value\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the retrieved value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if found; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParameterGroupCollection Class
Represents a collection of parameter groups\.
```csharp
public class ParameterGroupCollection : DiGi.Core.Classes.SerializableObject, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → ParameterGroupCollection
Implements [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1'), [System\.Collections\.IEnumerable](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable 'System\.Collections\.IEnumerable')
### Constructors
## ParameterGroupCollection\(\) Constructor
Initializes a new instance of the [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection') class\.
```csharp
public ParameterGroupCollection();
```
## ParameterGroupCollection\(ParameterGroupCollection\) Constructor
Initializes a new instance of the [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection') class by copying another collection\.
```csharp
public ParameterGroupCollection(DiGi.Core.Parameter.Classes.ParameterGroupCollection? parameterGroupCollection);
```
#### Parameters
`parameterGroupCollection` [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection')
The parameter group collection to copy from\.
## ParameterGroupCollection\(IEnumerable\\) Constructor
Initializes a new instance of the [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection') class from a collection of parameters\.
```csharp
public ParameterGroupCollection(System.Collections.Generic.IEnumerable? parameters);
```
#### Parameters
`parameters` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of parameters to initialize the collection with\.
## ParameterGroupCollection\(JsonObject\) Constructor
Initializes a new instance of the [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection') class from a JSON object\.
```csharp
public ParameterGroupCollection(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the collection from\.
### Properties
## ParameterGroupCollection\.this\[string\] Property
Gets the parameter group associated with the specified name\.
```csharp
public DiGi.Core.Parameter.Classes.ParameterGroup? this[string? name] { get; }
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter group to retrieve\.
#### Property Value
[ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup')
### Methods
## ParameterGroupCollection\.Clone\(\) Method
Creates a deep copy of the current parameter group collection\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A deep copy of the current parameter group collection\.
## ParameterGroupCollection\.Contains\(IParameterDefinition\) Method
Determines whether any group in the collection contains a parameter matching the specified definition\.
```csharp
public bool Contains(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if any group in the collection contains a parameter matching the specified definition; otherwise, false\.
## ParameterGroupCollection\.Contains\(string\) Method
Determines whether any group in the collection contains a parameter with the specified unique identifier\.
```csharp
public bool Contains(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if any group in the collection contains a parameter with the specified unique identifier; otherwise, false\.
## ParameterGroupCollection\.GetEnumerator\(\) Method
Returns an enumerator that iterates through the parameter groups in the collection\.
```csharp
public System.Collections.Generic.IEnumerator GetEnumerator();
```
Implements [GetEnumerator\(\)](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1.getenumerator 'System\.Collections\.Generic\.IEnumerable\`1\.GetEnumerator'), [GetEnumerator\(\)](https://learn.microsoft.com/en-us/dotnet/api/system.collections.ienumerable.getenumerator 'System\.Collections\.IEnumerable\.GetEnumerator')
#### Returns
[System\.Collections\.Generic\.IEnumerator<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerator-1 'System\.Collections\.Generic\.IEnumerator\`1')[ParameterGroup](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroup 'DiGi\.Core\.Parameter\.Classes\.ParameterGroup')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerator-1 'System\.Collections\.Generic\.IEnumerator\`1')
An enumerator that iterates through the parameter groups in the collection\.
## ParameterGroupCollection\.GetParameterDefinitions\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions that match the specified name and comparison criteria across all groups\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? parameterName, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true);
```
#### Parameters
`parameterName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use when matching the name\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the comparison should be case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions that match the criteria, or null if none are found\.
## ParameterGroupCollection\.GetParameterDefinitions\\(\) Method
Retrieves a list of all parameter definitions of the specified type across all groups\.
```csharp
public System.Collections.Generic.List GetParameterDefinitions()
where TParameterDefinition : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`TParameterDefinition`
The type of parameter definition to retrieve\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetParameterDefinitions_TParameterDefinition_().TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetParameterDefinitions\\(\)\.TParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list containing all parameter definitions of the specified type\.
## ParameterGroupCollection\.GetParameterDefinitions\\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions of type [TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetParameterDefinitions_TParameterDefinition_(string,DiGi.Core.Enums.TextComparisonType,bool).TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.TParameterDefinition') that match the specified name and comparison criteria across all groups\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? parameterName, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true)
where TParameterDefinition : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`TParameterDefinition`
The type of parameter definition to retrieve\.
#### Parameters
`parameterName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use when matching the name\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the comparison should be case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetParameterDefinitions_TParameterDefinition_(string,DiGi.Core.Enums.TextComparisonType,bool).TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.TParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions that match the criteria, or null if none are found\.
## ParameterGroupCollection\.GetValue\(IParameterDefinition, GetValueSettings\) Method
Gets the value associated with the specified parameter definition from the collection\.
```csharp
public object? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition used to retrieve the value\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to customize how the value is retrieved\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified parameter definition, or null if not found\.
## ParameterGroupCollection\.GetValue\(string, GetValueSettings\) Method
Gets the value associated with the specified unique identifier from the collection\.
```csharp
public object? GetValue(string? uniqueId, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to retrieve\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to customize how the value is retrieved\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified unique identifier, or null if not found\.
## ParameterGroupCollection\.GetValue\\(IParameterDefinition, GetValueSettings\) Method
Gets the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition from the collection\.
```csharp
public T? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter whose value is to be retrieved\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to control how the value is retrieved\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The value associated with the specified parameter definition, cast to type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T'), or null if not found\.
## ParameterGroupCollection\.Remove\(IParameterDefinition\) Method
Removes the parameter matching the specified definition from the collection\.
```csharp
public bool Remove(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter to remove\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParameterGroupCollection\.Remove\(string\) Method
Removes the parameter with the specified unique identifier from the collection\.
```csharp
public bool Remove(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to remove\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParameterGroupCollection\.SetValue\(Parameter\) Method
Adds or updates a parameter in the collection\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Classes.Parameter? parameter);
```
#### Parameters
`parameter` [Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')
The parameter to add or update\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the operation was successful; otherwise, `false`\.
## ParameterGroupCollection\.SetValue\(IParameterDefinition, object, SetValueSettings\) Method
Sets the value for the parameter matching the specified definition within the collection\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter to set\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to assign to the parameter\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings to control how the value is set\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParameterGroupCollection\.SetValue\(string, object, SetValueSettings\) Method
Sets the value for the parameter identified by the specified name within the collection\.
```csharp
public bool SetValue(string? name, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter to set\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to assign to the parameter\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings to control how the value is set\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParameterGroupCollection\.TryGetValue\(IParameterDefinition, object, GetValueSettings\) Method
Attempts to get the value associated with the specified parameter definition from the collection\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition associated with the value to get\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the value associated with the specified parameter definition, if found; otherwise, `null`\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the value was found; otherwise, `false`\.
## ParameterGroupCollection\.TryGetValue\(string, object, GetValueSettings\) Method
Attempts to get the value associated with the specified unique identifier from the collection\.
```csharp
public bool TryGetValue(string? uniqueId, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to get\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the value associated with the specified unique identifier, if found; otherwise, `null`\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the value was found; otherwise, `false`\.
## ParameterGroupCollection\.TryGetValue\\(IParameterDefinition, T, GetValueSettings\) Method
Attempts to get the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition from the collection\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition associated with the value to get\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the value associated with the specified parameter definition, if found; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the value was found; otherwise, `false`\.
## ParameterGroupCollection\.TryGetValue\\(string, T, GetValueSettings\) Method
Attempts to get the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified unique identifier from the collection\.
```csharp
public bool TryGetValue(string? uniqueId, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to get\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the value associated with the specified unique identifier, if found; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if the value was found; otherwise, `false`\.
## ParameterProperties Class
Contains metadata and properties for a parameter definition\.
```csharp
public class ParameterProperties : System.Attribute
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → ParameterProperties
### Constructors
## ParameterProperties\(string\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with a specified name\.
```csharp
public ParameterProperties(string? name);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
## ParameterProperties\(string, string\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with a unique identifier and name\.
```csharp
public ParameterProperties(string? uniqueId, string? name);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier for the parameter\.
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
## ParameterProperties\(string, string, AccessType\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with a name, description, and access type\.
```csharp
public ParameterProperties(string? name, string? description, DiGi.Core.Parameter.Enums.AccessType accessType);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
`description` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The description of the parameter\.
`accessType` [AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
The access type of the parameter\.
## ParameterProperties\(string, string, string\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with a unique identifier, name, and description\.
```csharp
public ParameterProperties(string? uniqueId, string? name, string? description);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier for the parameter\.
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
`description` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The description of the parameter\.
## ParameterProperties\(string, string, string, AccessType\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with a unique identifier, name, description, and access type\.
```csharp
public ParameterProperties(string? uniqueId, string? name, string? description, DiGi.Core.Parameter.Enums.AccessType accessType);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier for the parameter\.
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
`description` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The description of the parameter\.
`accessType` [AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
The access type of the parameter\.
## ParameterProperties\(string, string, string, AccessType, string\) Constructor
Initializes a new instance of the [ParameterProperties](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterProperties 'DiGi\.Core\.Parameter\.Classes\.ParameterProperties') class with full metadata including group name\.
```csharp
public ParameterProperties(string? uniqueId, string? name, string? description, DiGi.Core.Parameter.Enums.AccessType accessType, string? groupName);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier for the parameter\.
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
`description` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The description of the parameter\.
`accessType` [AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
The access type of the parameter\.
`groupName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the group to which the parameter belongs\.
### Properties
## ParameterProperties\.AccessType Property
Gets or sets the access level of the parameter\.
```csharp
public DiGi.Core.Parameter.Enums.AccessType AccessType { get; }
```
#### Property Value
[AccessType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.AccessType 'DiGi\.Core\.Parameter\.Enums\.AccessType')
## ParameterProperties\.Description Property
Gets or sets the description of the parameter\.
```csharp
public string? Description { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterProperties\.GroupName Property
Gets or sets the name of the group this parameter belongs to\.
```csharp
public string? GroupName { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterProperties\.Name Property
Gets or sets the display name of the parameter\.
```csharp
public string? Name { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterProperties\.UniqueId Property
Gets or sets a unique string identifier for the object\.
```csharp
public string? UniqueId { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## ParameterValue Class
Base class for all parameter value types\.
```csharp
public abstract class ParameterValue : System.Attribute, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → ParameterValue
Derived
↳ [BooleanParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.BooleanParameterValue 'DiGi\.Core\.Parameter\.Classes\.BooleanParameterValue')
↳ [DoubleParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.DoubleParameterValue 'DiGi\.Core\.Parameter\.Classes\.DoubleParameterValue')
↳ [GuidParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GuidParameterValue 'DiGi\.Core\.Parameter\.Classes\.GuidParameterValue')
↳ [IntegerParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.IntegerParameterValue 'DiGi\.Core\.Parameter\.Classes\.IntegerParameterValue')
↳ [ObjectParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ObjectParameterValue 'DiGi\.Core\.Parameter\.Classes\.ObjectParameterValue')
↳ [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue')
Implements [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## ParameterValue\(\) Constructor
Initializes a new instance of the [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') class\.
```csharp
public ParameterValue();
```
## ParameterValue\(bool\) Constructor
Initializes a new instance of the [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') class with specified nullability\.
```csharp
public ParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
## ParameterValue\(ParameterValue\) Constructor
Initializes a new instance of the [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') class by copying an existing instance\.
```csharp
public ParameterValue(DiGi.Core.Parameter.Classes.ParameterValue? parameterValue);
```
#### Parameters
`parameterValue` [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue')
The existing [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') instance to copy\.
## ParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') class from a JSON object\.
```csharp
public ParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object used to initialize the parameter value\.
### Properties
## ParameterValue\.Nullable Property
Gets a value indicating whether the parameter is nullable\.
```csharp
public bool Nullable { get; }
```
#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
## ParameterValue\.ParameterType Property
Gets the parameter type associated with this value\.
```csharp
public abstract DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## ParameterValue\.Clone\(\) Method
Creates a clone of the current parameter value\.
```csharp
public abstract DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A new instance of [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject') that is a copy of the current object, or null\.
## ParameterValue\.FromJsonObject\(JsonObject\) Method
Populates the parameter value from the provided JSON object\.
```csharp
public bool FromJsonObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to extract the value from\.
Implements [FromJsonObject\(JsonObject\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.fromjsonobject#digi-core-interfaces-iserializableobject-fromjsonobject(system-text-json-nodes-jsonobject) 'DiGi\.Core\.Interfaces\.ISerializableObject\.FromJsonObject\(System\.Text\.Json\.Nodes\.JsonObject\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the population was successful; otherwise, false\.
## ParameterValue\.IsValid\(object\) Method
Validates whether the given value is compatible with this parameter\.
```csharp
public virtual bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is valid; otherwise, false\.
## ParameterValue\.ToJsonObject\(\) Method
Converts the current parameter value to a JSON object\.
```csharp
public System.Text.Json.Nodes.JsonObject? ToJsonObject();
```
Implements [ToJsonObject\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject.tojsonobject 'DiGi\.Core\.Interfaces\.ISerializableObject\.ToJsonObject')
#### Returns
[System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
A [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject') representation of the parameter value, or null if conversion fails\.
## ParameterValue\.TryConvert\(object, object\) Method
Attempts to convert an input value to the expected output type\.
```csharp
public virtual bool TryConvert(object? value_In, out object? value_Out);
```
#### Parameters
`value_In` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to be converted\.
`value_Out` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the converted value if successful; otherwise, null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the conversion was successful; otherwise, false\.
## ParametrizedGuidObject Class
Base class for objects that possess a unique GUID and a set of parameters\.
```csharp
public abstract class ParametrizedGuidObject : DiGi.Core.Parameter.Classes.ParametrizedObject, DiGi.Core.Parameter.Interfaces.IParametrizedGuidObject, DiGi.Core.Parameter.Interfaces.IParametrizedUniqueObject, DiGi.Core.Parameter.Interfaces.IParametrizedObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.IUniqueIdObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → ParametrizedGuidObject
Implements [IParametrizedGuidObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedGuidObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedGuidObject'), [IParametrizedUniqueObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedUniqueObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedUniqueObject'), [IParametrizedObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.IUniqueIdObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueidobject 'DiGi\.Core\.Interfaces\.IUniqueIdObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject')
### Constructors
## ParametrizedGuidObject\(\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class\.
```csharp
public ParametrizedGuidObject();
```
## ParametrizedGuidObject\(ParameterGroupCollection\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class with a specified group collection\.
```csharp
public ParametrizedGuidObject(DiGi.Core.Parameter.Classes.ParameterGroupCollection? parameterGroupCollection);
```
#### Parameters
`parameterGroupCollection` [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection')
The collection of parameter groups to initialize the object with\.
## ParametrizedGuidObject\(ParametrizedGuidObject\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class by copying another object\.
```csharp
public ParametrizedGuidObject(DiGi.Core.Parameter.Classes.ParametrizedGuidObject? parametrizedGuidObject);
```
#### Parameters
`parametrizedGuidObject` [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject')
The source object to copy\.
## ParametrizedGuidObject\(IEnumerable\\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class with a collection of parameters\.
```csharp
public ParametrizedGuidObject(System.Collections.Generic.IEnumerable? parameters);
```
#### Parameters
`parameters` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of parameters to initialize the object with\.
## ParametrizedGuidObject\(Guid\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class with a specified GUID\.
```csharp
public ParametrizedGuidObject(System.Guid guid);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The GUID to assign to the new instance\.
## ParametrizedGuidObject\(Guid, ParametrizedGuidObject\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class with a specific GUID and data from another object\.
```csharp
public ParametrizedGuidObject(System.Guid guid, DiGi.Core.Parameter.Classes.ParametrizedGuidObject? parametrizedGuidObject);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The GUID to assign to the new instance\.
`parametrizedGuidObject` [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject')
The source object from which to copy data\.
## ParametrizedGuidObject\(JsonObject\) Constructor
Initializes a new instance of the [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') class from a JSON object\.
```csharp
public ParametrizedGuidObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to deserialize into a new instance\.
### Properties
## ParametrizedGuidObject\.Guid Property
Gets the unique global identifier of the object\.
```csharp
public System.Guid Guid { get; }
```
Implements [Guid](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject.guid 'DiGi\.Core\.Interfaces\.IGuidObject\.Guid')
#### Property Value
[System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
## ParametrizedGuidObject\.UniqueId Property
Gets or sets a unique string identifier for the object\.
```csharp
public string? UniqueId { get; }
```
Implements [UniqueId](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject.uniqueid 'DiGi\.Core\.Interfaces\.IUniqueObject\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## ParametrizedGuidObject\.Duplicate\(Nullable\\) Method
Creates a duplicate of the current object, optionally with a new GUID\.
```csharp
public DiGi.Core.Interfaces.IGuidObject? Duplicate(System.Nullable guid=null);
```
#### Parameters
`guid` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
The optional GUID to assign to the duplicated object\.
Implements [Duplicate\(Nullable<Guid>\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject.duplicate#digi-core-interfaces-iguidobject-duplicate(system-nullable{system-guid}) 'DiGi\.Core\.Interfaces\.IGuidObject\.Duplicate\(System\.Nullable\{System\.Guid\}\)')
#### Returns
[DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject')
A duplicate of the current object as an [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), or null if duplication fails\.
## ParametrizedObject Class
Class ParametrizedObject\.
```csharp
public class ParametrizedObject : DiGi.Core.Classes.SerializableObject, DiGi.Core.Parameter.Interfaces.IParametrizedObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → ParametrizedObject
Derived
↳ [ParametrizedGuidObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedGuidObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject')
↳ [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject')
Implements [IParametrizedObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## ParametrizedObject\(\) Constructor
Initializes a new instance of the [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') class\.
```csharp
public ParametrizedObject();
```
## ParametrizedObject\(ParameterGroupCollection\) Constructor
Initializes a new instance of the [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') class using a parameter group collection\.
```csharp
public ParametrizedObject(DiGi.Core.Parameter.Classes.ParameterGroupCollection? parameterGroupCollection);
```
#### Parameters
`parameterGroupCollection` [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection')
The parameter group collection to use for initialization\.
## ParametrizedObject\(ParametrizedObject\) Constructor
Initializes a new instance of the [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') class by copying another parametrized object\.
```csharp
public ParametrizedObject(DiGi.Core.Parameter.Classes.ParametrizedObject? parametrizedObject);
```
#### Parameters
`parametrizedObject` [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject')
The parametrized object to copy from\.
## ParametrizedObject\(IEnumerable\\) Constructor
Initializes a new instance of the [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') class using a collection of parameters\.
```csharp
public ParametrizedObject(System.Collections.Generic.IEnumerable? parameters);
```
#### Parameters
`parameters` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of parameters to initialize the object with\.
## ParametrizedObject\(JsonObject\) Constructor
Initializes a new instance of the [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') class from a JSON object\.
```csharp
public ParametrizedObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize from\.
### Properties
## ParametrizedObject\.ParameterGroupCollection Property
Gets the parameter group collection\.
```csharp
public DiGi.Core.Parameter.Classes.ParameterGroupCollection ParameterGroupCollection { get; }
```
#### Property Value
[ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection')
### Methods
## ParametrizedObject\.Clone\(\) Method
Creates a deep copy of the parametrized object\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A new cloned instance of the parametrized object\.
## ParametrizedObject\.Contains\(IParameterDefinition\) Method
Determines whether the object contains a parameter associated with the specified definition\.
```csharp
public bool Contains(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the object contains a parameter associated with the specified definition; otherwise, false\.
## ParametrizedObject\.Contains\(string\) Method
Determines whether the object contains a parameter with the specified unique identifier\.
```csharp
public bool Contains(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to search for\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the object contains a parameter with the specified unique identifier; otherwise, false\.
## ParametrizedObject\.GetParameterDefinitions\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions that match the specified name and comparison criteria\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? parameterName, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true);
```
#### Parameters
`parameterName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the comparison should be case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions that match the specified criteria, or null if none are found\.
## ParametrizedObject\.GetParameterDefinitions\\(\) Method
Retrieves all parameter definitions of type [TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetParameterDefinitions_TParameterDefinition_().TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetParameterDefinitions\\(\)\.TParameterDefinition')\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions()
where TParameterDefinition : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`TParameterDefinition`
The type of the parameter definitions to retrieve\.
Implements [GetParameterDefinitions<TParameterDefinition>\(\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject.GetParameterDefinitions_TParameterDefinition_() 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject\.GetParameterDefinitions\\(\)')
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetParameterDefinitions_TParameterDefinition_().TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetParameterDefinitions\\(\)\.TParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of all parameter definitions of the specified type, or null if none are found\.
## ParametrizedObject\.GetParameterDefinitions\\(string, TextComparisonType, bool\) Method
Retrieves a list of parameter definitions of type [TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetParameterDefinitions_TParameterDefinition_(string,DiGi.Core.Enums.TextComparisonType,bool).TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.TParameterDefinition') that match the specified name and comparison criteria\.
```csharp
public System.Collections.Generic.List? GetParameterDefinitions(string? parameterName, DiGi.Core.Enums.TextComparisonType textComparisonType=DiGi.Core.Enums.TextComparisonType.Equals, bool caseSensitive=true)
where TParameterDefinition : DiGi.Core.Parameter.Interfaces.IParameterDefinition;
```
#### Type parameters
`TParameterDefinition`
The type of the parameter definitions to retrieve\.
#### Parameters
`parameterName` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameters to search for\.
`textComparisonType` [DiGi\.Core\.Enums\.TextComparisonType](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.textcomparisontype 'DiGi\.Core\.Enums\.TextComparisonType')
The type of text comparison to use\.
`caseSensitive` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the comparison should be case\-sensitive\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetParameterDefinitions_TParameterDefinition_(string,DiGi.Core.Enums.TextComparisonType,bool).TParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetParameterDefinitions\\(string, DiGi\.Core\.Enums\.TextComparisonType, bool\)\.TParameterDefinition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of parameter definitions that match the specified criteria, or null if none are found\.
## ParametrizedObject\.GetValue\(IParameterDefinition, GetValueSettings\) Method
Gets the value associated with the specified parameter definition\.
```csharp
public object? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition for which to retrieve the value\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified parameter definition, or null if not found\.
## ParametrizedObject\.GetValue\(string, GetValueSettings\) Method
Gets the value associated with the specified unique identifier\.
```csharp
public object? GetValue(string? uniqueId, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to retrieve\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified unique identifier, or null if not found\.
## ParametrizedObject\.GetValue\(Enum, GetValueSettings\) Method
Gets the value associated with the specified enumeration member\.
```csharp
public object? GetValue(System.Enum? @enum, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration member associated with the value\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value associated with the specified enumeration member, or null if not found\.
## ParametrizedObject\.GetValue\\(IParameterDefinition, GetValueSettings\) Method
Gets the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition\.
```csharp
public T? GetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter whose value is to be retrieved\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The value associated with the specified parameter definition, or null if not found\.
## ParametrizedObject\.GetValue\\(Enum, GetValueSettings\) Method
Gets the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetValue_T_(System.Enum,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetValue\\(System\.Enum, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified enumeration member\.
```csharp
public T? GetValue(System.Enum? @enum, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration member associated with the value\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.GetValue_T_(System.Enum,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.GetValue\\(System\.Enum, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
The value associated with the specified enumeration member, or null if not found\.
## ParametrizedObject\.Remove\(IParameterDefinition\) Method
Removes the parameter associated with the specified definition\.
```csharp
public bool Remove(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The definition of the parameter to remove\.
Implements [Remove\(IParameterDefinition\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject.Remove(DiGi.Core.Parameter.Interfaces.IParameterDefinition) 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject\.Remove\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParametrizedObject\.Remove\(string\) Method
Removes the parameter associated with the specified unique identifier\.
```csharp
public bool Remove(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the parameter to remove\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the parameter was successfully removed; otherwise, false\.
## ParametrizedObject\.SetValue\(Parameter\) Method
Sets the value using the provided parameter object\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Classes.Parameter? parameter);
```
#### Parameters
`parameter` [Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')
The parameter object containing the value to set\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParametrizedObject\.SetValue\(IParameterDefinition, object, SetValueSettings\) Method
Sets the value for the specified parameter definition\.
```csharp
public bool SetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to set\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings for setting the value\.
Implements [SetValue\(IParameterDefinition, object, SetValueSettings\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject.SetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition,object,DiGi.Core.Parameter.Classes.SetValueSettings) 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject\.SetValue\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, object, DiGi\.Core\.Parameter\.Classes\.SetValueSettings\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParametrizedObject\.SetValue\(string, object, SetValueSettings\) Method
Sets the value for the parameter with the specified name\.
```csharp
public bool SetValue(string? name, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to set\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings for setting the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParametrizedObject\.SetValue\(Enum, object, SetValueSettings\) Method
Sets the value for the specified enumeration member\.
```csharp
public bool SetValue(System.Enum? @enum, object? value, DiGi.Core.Parameter.Classes.SetValueSettings? setValueSettings=null);
```
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration member\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to set\.
`setValueSettings` [SetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SetValueSettings 'DiGi\.Core\.Parameter\.Classes\.SetValueSettings')
Optional settings for setting the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully set; otherwise, false\.
## ParametrizedObject\.TryGetValue\(IParameterDefinition, object, GetValueSettings\) Method
Attempts to retrieve the value associated with the specified parameter definition\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition associated with the value\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the retrieved value if successful; otherwise, null\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedObject\.TryGetValue\(string, object, GetValueSettings\) Method
Attempts to retrieve the value associated with the specified unique identifier\.
```csharp
public bool TryGetValue(string? uniqueId, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier of the value to retrieve\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the retrieved value if successful; otherwise, null\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings for retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedObject\.TryGetValue\(Enum, object, GetValueSettings\) Method
Attempts to retrieve the value associated with the specified enumeration member\.
```csharp
public bool TryGetValue(System.Enum? @enum, out object? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration member associated with the value\.
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
When this method returns, contains the retrieved value if successful; otherwise, null\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedObject\.TryGetValue\\(IParameterDefinition, T, GetValueSettings\) Method
Attempts to retrieve the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified parameter definition\.
```csharp
public bool TryGetValue(DiGi.Core.Parameter.Interfaces.IParameterDefinition? parameterDefinition, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`parameterDefinition` [IParameterDefinition](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition')
The parameter definition associated with the value\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the retrieved value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if successful; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
Implements [TryGetValue<T>\(IParameterDefinition, T, GetValueSettings\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject.TryGetValue_T_(DiGi.Core.Parameter.Interfaces.IParameterDefinition,T,DiGi.Core.Parameter.Classes.GetValueSettings) 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject\.TryGetValue\\(DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedObject\.TryGetValue\\(string, T, GetValueSettings\) Method
Attempts to retrieve the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified unique identifier\.
```csharp
public bool TryGetValue(string? uniqueId, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier for the value\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the retrieved value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if successful; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(string,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(string, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedObject\.TryGetValue\\(Enum, T, GetValueSettings\) Method
Attempts to retrieve the value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(System.Enum,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(System\.Enum, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') associated with the specified enumeration member\.
```csharp
public bool TryGetValue(System.Enum? @enum, out T? value, DiGi.Core.Parameter.Classes.GetValueSettings? getValueSettings=null);
```
#### Type parameters
`T`
The type of the value to retrieve\.
#### Parameters
`enum` [System\.Enum](https://learn.microsoft.com/en-us/dotnet/api/system.enum 'System\.Enum')
The enumeration member associated with the value\.
`value` [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(System.Enum,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(System\.Enum, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')
When this method returns, contains the retrieved value of type [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(System.Enum,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(System\.Enum, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T') if successful; otherwise, the default value of [T](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject.TryGetValue_T_(System.Enum,T,DiGi.Core.Parameter.Classes.GetValueSettings).T 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject\.TryGetValue\\(System\.Enum, T, DiGi\.Core\.Parameter\.Classes\.GetValueSettings\)\.T')\.
`getValueSettings` [GetValueSettings](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.GetValueSettings 'DiGi\.Core\.Parameter\.Classes\.GetValueSettings')
Optional settings to use when retrieving the value\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value was successfully retrieved; otherwise, false\.
## ParametrizedUniqueIdObject Class
Represents an abstract base class for objects that possess both a set of parameters and a unique identifier\.
```csharp
public abstract class ParametrizedUniqueIdObject : DiGi.Core.Parameter.Classes.ParametrizedObject, DiGi.Core.Parameter.Interfaces.IParametrizedUniqueIdObject, DiGi.Core.Parameter.Interfaces.IParametrizedUniqueObject, DiGi.Core.Parameter.Interfaces.IParametrizedObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.IUniqueIdObject, DiGi.Core.Interfaces.IUniqueObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParametrizedObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → ParametrizedUniqueIdObject
Implements [IParametrizedUniqueIdObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedUniqueIdObject'), [IParametrizedUniqueObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedUniqueObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedUniqueObject'), [IParametrizedObject](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParametrizedObject 'DiGi\.Core\.Parameter\.Interfaces\.IParametrizedObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.IUniqueIdObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueidobject 'DiGi\.Core\.Interfaces\.IUniqueIdObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject')
### Constructors
## ParametrizedUniqueIdObject\(\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class\.
```csharp
public ParametrizedUniqueIdObject();
```
## ParametrizedUniqueIdObject\(ParameterGroupCollection\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class using a parameter group collection\.
```csharp
public ParametrizedUniqueIdObject(DiGi.Core.Parameter.Classes.ParameterGroupCollection? parameterGroupCollection);
```
#### Parameters
`parameterGroupCollection` [ParameterGroupCollection](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterGroupCollection 'DiGi\.Core\.Parameter\.Classes\.ParameterGroupCollection')
The parameter group collection to use for initialization\.
## ParametrizedUniqueIdObject\(ParametrizedUniqueIdObject\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class by copying another unique ID parametrized object\.
```csharp
public ParametrizedUniqueIdObject(DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject? parametrizedUniqueIdObject);
```
#### Parameters
`parametrizedUniqueIdObject` [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject')
The parametrized unique ID object to copy\.
## ParametrizedUniqueIdObject\(string\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class with a specified unique identifier\.
```csharp
public ParametrizedUniqueIdObject(string? uniqueId);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier\.
## ParametrizedUniqueIdObject\(string, ParametrizedUniqueIdObject\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class with a specific ID and values from another object\.
```csharp
public ParametrizedUniqueIdObject(string? uniqueId, DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject? parametrizedUniqueIdObject);
```
#### Parameters
`uniqueId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The unique identifier\.
`parametrizedUniqueIdObject` [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject')
The parametrized unique ID object to copy values from\.
## ParametrizedUniqueIdObject\(IEnumerable\\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class using a collection of parameters\.
```csharp
public ParametrizedUniqueIdObject(System.Collections.Generic.IEnumerable? parameters);
```
#### Parameters
`parameters` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[Parameter](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.Parameter 'DiGi\.Core\.Parameter\.Classes\.Parameter')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of parameters to use for initialization\.
## ParametrizedUniqueIdObject\(JsonObject\) Constructor
Initializes a new instance of the [ParametrizedUniqueIdObject](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParametrizedUniqueIdObject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedUniqueIdObject') class from a JSON object\.
```csharp
public ParametrizedUniqueIdObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize from\.
### Properties
## ParametrizedUniqueIdObject\.UniqueId Property
Gets or sets the unique identifier for this object\.
```csharp
public string? UniqueId { get; }
```
Implements [UniqueId](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject.uniqueid 'DiGi\.Core\.Interfaces\.IUniqueObject\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## SetValueSettings Class
Contains settings for setting a parameter value\.
```csharp
public class SetValueSettings
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → SetValueSettings
### Constructors
## SetValueSettings\(\) Constructor
Initializes a new instance of the SetValueSettings class\.
```csharp
public SetValueSettings();
```
## SetValueSettings\(bool, bool\) Constructor
Initializes a new instance of the SetValueSettings class with specified options\.
```csharp
public SetValueSettings(bool tryConvert, bool checkAccessType);
```
#### Parameters
`tryConvert` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Whether to attempt conversion if types do not match\.
`checkAccessType` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
Whether to check for write access permissions\.
### Properties
## SetValueSettings\.CheckAccessType Property
Gets or sets a value indicating whether the access type should be checked during assignment\.
```csharp
public bool CheckAccessType { get; set; }
```
#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
## SetValueSettings\.TryConvert Property
Gets or sets a value indicating whether to attempt conversion of the value during assignment\.
```csharp
public bool TryConvert { get; set; }
```
#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
## SimpleParameterDefinition Class
Represents a definition for a simple parameter\.
```csharp
public class SimpleParameterDefinition : DiGi.Core.Parameter.Classes.ParameterDefinition
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [ParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.ParameterDefinition') → SimpleParameterDefinition
### Constructors
## SimpleParameterDefinition\(SimpleParameterDefinition\) Constructor
Initializes a new instance of the [SimpleParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SimpleParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.SimpleParameterDefinition') class by copying an existing definition\.
```csharp
public SimpleParameterDefinition(DiGi.Core.Parameter.Classes.SimpleParameterDefinition? simpleParameterDefinition);
```
#### Parameters
`simpleParameterDefinition` [SimpleParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SimpleParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.SimpleParameterDefinition')
The parameter definition to copy from\.
## SimpleParameterDefinition\(string\) Constructor
Initializes a new instance of the [SimpleParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SimpleParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.SimpleParameterDefinition') class with the specified name\.
```csharp
public SimpleParameterDefinition(string? name);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the parameter\.
## SimpleParameterDefinition\(JsonObject\) Constructor
Initializes a new instance of the [SimpleParameterDefinition](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.SimpleParameterDefinition 'DiGi\.Core\.Parameter\.Classes\.SimpleParameterDefinition') class from a JSON object\.
```csharp
public SimpleParameterDefinition(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize the definition from\.
### Properties
## SimpleParameterDefinition\.GroupName Property
Gets the name of the group to which this parameter belongs\.
```csharp
public override string GroupName { get; }
```
Implements [GroupName](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.GroupName 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.GroupName')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## SimpleParameterDefinition\.Name Property
Gets or sets the name of the parameter\.
```csharp
public override string? Name { get; }
```
Implements [Name](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.inamedobject.name 'DiGi\.Core\.Interfaces\.INamedObject\.Name')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
## SimpleParameterDefinition\.ParameterType Property
Gets the type of the parameter\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
Implements [ParameterType](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.ParameterType 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.ParameterType')
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
## SimpleParameterDefinition\.UniqueId Property
Gets or sets the unique identifier for the parameter\.
```csharp
public override string? UniqueId { get; }
```
Implements [UniqueId](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.UniqueId 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.UniqueId')
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## SimpleParameterDefinition\.IsValid\(object\) Method
Determines whether the specified value is a valid integer parameter value\.
```csharp
public override bool IsValid(object? value);
```
#### Parameters
`value` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The value to validate\.
Implements [IsValid\(object\)](DiGi.Core.Parameter.Interfaces.md#DiGi.Core.Parameter.Interfaces.IParameterDefinition.IsValid(object) 'DiGi\.Core\.Parameter\.Interfaces\.IParameterDefinition\.IsValid\(object\)')
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the value is a valid integer parameter value; otherwise, false\.
## StringParameterValue Class
Represents a parameter value that holds a string\.
```csharp
public class StringParameterValue : DiGi.Core.Parameter.Classes.ParameterValue
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [System\.Attribute](https://learn.microsoft.com/en-us/dotnet/api/system.attribute 'System\.Attribute') → [ParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.ParameterValue 'DiGi\.Core\.Parameter\.Classes\.ParameterValue') → StringParameterValue
### Constructors
## StringParameterValue\(\) Constructor
Initializes a new instance of the [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue') class\.
```csharp
public StringParameterValue();
```
## StringParameterValue\(bool\) Constructor
Initializes a new instance of the [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue') class with specified nullability\.
```csharp
public StringParameterValue(bool nullable);
```
#### Parameters
`nullable` [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
A value indicating whether the parameter is nullable\.
## StringParameterValue\(StringParameterValue\) Constructor
Initializes a new instance of the [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue') class by copying an existing instance\.
```csharp
public StringParameterValue(DiGi.Core.Parameter.Classes.StringParameterValue? stringParameterValue);
```
#### Parameters
`stringParameterValue` [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue')
The existing instance to copy\.
## StringParameterValue\(JsonObject\) Constructor
Initializes a new instance of the [StringParameterValue](DiGi.Core.Parameter.Classes.md#DiGi.Core.Parameter.Classes.StringParameterValue 'DiGi\.Core\.Parameter\.Classes\.StringParameterValue') class from a JSON object\.
```csharp
public StringParameterValue(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to initialize from\.
### Properties
## StringParameterValue\.ParameterType Property
Gets the parameter type associated with this string parameter value\.
```csharp
public override DiGi.Core.Parameter.Enums.ParameterType ParameterType { get; }
```
#### Property Value
[ParameterType](DiGi.Core.Parameter.Enums.md#DiGi.Core.Parameter.Enums.ParameterType 'DiGi\.Core\.Parameter\.Enums\.ParameterType')
### Methods
## StringParameterValue\.Clone\(\) Method
Creates a clone of the current string parameter value\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A clone of the current string parameter value\.