For each property of a class, regardless of whether it exists as C# code in an assembly or whether it was defined virtually using the iPlus development environment, the iPlus framework creates an instance of the generic class ACProperty<T> or one of its derivatives. See the following UML diagram:
The ACProperty<T> class has a ValueT property that encapsulates the actual value. You can use it to read or set the value. For properties that have been defined as normal C# properties, the corresponding setter or getter method is automatically called in the background.
To get a reference to an ACProperty<T>, call the method IACPropertyBase GetProperty(string acName) and pass the name of the property. All properties of a class are provided in the List<IACPropertyBase> ACPropertyList of an ACComponent. You can therefore also access this list and search for its property yourself using LINQ.
The IACPropertyBase interface allows type-neutral access to a property if the data type is not known to the application programmer. The object Value property can also be used to access the value via Boxing/Unboxing. However, we recommend that you always work with the generic variant, because this prevents type runtime errors.
Therefore cast the IACPropertyBase into an IACContainerT<T> reference and always work with it!
The background why you should rather work with an IACContainerT<T> reference is because due to the network abstraction capability of the iPlus framework different derivatives of the ACProperty<T> class can be hidden and you should not be bothered with them during programming (see diagram above).
Network-compatible or local properties are discussed in more detail in the following subchapters.