Skip to content

Commit 3e313f2

Browse files
committed
.NET (Web API): Fix reference types in invoke_method
1 parent 9910577 commit 3e313f2

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

csharp-api/test/Test/TestWebAPI.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,6 +1533,19 @@ static object ParseComplexValueFromJson(JsonElement value, string typeName) {
15331533
return vt;
15341534
}
15351535

1536+
// Reference type: resolve hex address string to ManagedObject
1537+
if (!tdef.IsValueType() && value.ValueKind == JsonValueKind.String) {
1538+
var addrStr = value.GetString();
1539+
if (addrStr != null && addrStr.StartsWith("0x", StringComparison.OrdinalIgnoreCase)) {
1540+
try {
1541+
var addr = Convert.ToUInt64(addrStr.Substring(2), 16);
1542+
if (addr != 0) {
1543+
return ManagedObject.ToManagedObject(addr);
1544+
}
1545+
} catch { }
1546+
}
1547+
}
1548+
15361549
return null;
15371550
}
15381551

0 commit comments

Comments
 (0)