# 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
