alttester / alttester/AltTester-Unity-SDK

Setting a nested property results in error: Unable to cast object of type 'RuntimePropertyInfo' to type 'FieldInfo'

Open
#834 1 comment 0 reactions 0 assignees View on GitHub
gitlab no version triaged
Dominant language
C#
Stars
121
Forks
24
PR merge metrics
No merged PRs in 30d

Description

Setting a nested property results in error.

Scenario: Call set_component_property(component_name, 'field.Property.Property', value)

Recursively assigning values from the innermost property, AltUnity ignores the possibility of the intermediate property being of type RuntimePropertyInfo, and therefore ends up casting it to FieldInfo which results in the following error:

```
altunityrunner.altUnityExceptions.UnknownErrorException: error:unknownError
Unable to cast object of type 'RuntimePropertyInfo' to type 'FieldInfo'.
```

Code block that causes the issue:
```
AltUnityReflectionMethodsCommand.cs:setValueRecursive()

if (memberInfo.GetType().Equals(typeof(PropertyInfo)))
{
((PropertyInfo)memberInfo).SetValue(instance, valueObtained);
}
else
{
((FieldInfo)memberInfo).SetValue(instance, valueObtained);
}
```

---
You can find the original issue from GitLab [here](https://gitlab.com/altom/altunity/altunitytester/-/issues/857).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.