# CMxCustomStruct Class Namespace: `ArchestrA.Toolkit` CMxCustomStruct is derived from CMxCommon and provides support for custom data in the form of a guid and byte array. **Syntax** ```csharp public class CMxCustomStruct : CMxCommon ``` ## CMxCustomStruct Property ### Value Property Provides a property to get and set the value as an MxCustomStruct. **Syntax** ```csharp public MxCustomStruct Value { get; set; } ``` **Returns** MxCustomStruct ## CMxCustomStruct Constructors ### CMxCustomStruct Constructor Provides a default constructor. **Syntax** ```csharp public CMxCustomStruct(); ``` ### CMxCustomStruct Constructor (int) Provides a constructor to initialize struct with an ID. **Syntax** ```csharp public CMxCustomStruct(int id); ``` **Parameters** **`id`** [in] int value that holds the ID. ### CMxCustomStruct Constructor (SupportWrapper, string) Provides a constructor to initialize the class for use in a primitive wrapper. **Syntax** ```csharp public CMxCustomStruct(SupportWrapper _wrapper, string _attributeRef); ``` **Parameters** **`_wrapper`** [in] SupportWrapper. **`_attributeRef`** [in] string value that holds the attribute reference. ## CMxCustomStruct Method ### GetObject Method Provides a method to retrieve a serialized C# object from the data in a CMxCustomStruct. **Syntax** ```csharp public object GetObject(); ``` **Returns** object ### StoreObject Method Provides a method to serialize and store a C# object into the data of a CMxCustomStruct. Syntax ```csharp public void StoreObject(object obj); ``` **Parameters** **`obj`** [in] C# object to be stored. ### Set Method Provides a method to set the value of the Attribute from a CMxCustomStruct. **Syntax** ```csharp public void Set(CMxCustomStruct val); ``` **Parameters** **`val`** [in] CMxCustomStruct value to be set. ## CMxCustomStruct Operator Overloads ### CMxValue Operator Overload Provides an operator to convert a CMxCustomStruct into a CMxValue. **Syntax** ```csharp public static implicit operator CMxValue(CMxCustomStruct val); ``` **Parameters** **`val`** [in] CMxCustomStruct value to convert to CMxValue. **Returns** CMxValue ### MxCustomStruct Operator Overload Provides an operator to convert a CMxCustomStruct into a MxCustomStruct. **Syntax** ```csharp public static implicit operator MxCustomStruct(CMxCustomStruct val); ``` **Parameters** **`val`** [in] CMxCustomStruct value to convert to MxCustomStruct. **Returns** MxCustomStruct ### CMxCustomStruct Operator Overload (CMxValue) Provides an operator to convert a CMxValue into a CMxCustomStruct. **Syntax** ```csharp public static implicit operator CMxCustomStruct(CMxValue val); ``` **Parameters** **`val`** [in] CMxValue value to convert to CMxCustomStruct. **Returns** CMxCustomStruct ### CMxCustomStruct Operator Overload (MxCustomStruct) Provides an operator to convert a MxCustomStruct into a CMxCustomStruct. **Syntax** ```csharp public static implicit operator CMxCustomStruct(MxCustomStruct x); ``` **Parameters** **`x`** [in] MxCustomStruct value to convert to CMxCustomStruct. **Returns** CMxCustomStruct