跳到主要内容
版本:dev

Troubleshooting

This page covers common C# runtime issues and fixes.

TypeNotRegisteredException

Symptom: Type not registered: ...

Cause: A user type was serialized/deserialized without registration.

Fix:

Fory fory = Fory.Builder().Build();
fory.Register<MyType>(100);

Ensure the same type-ID/name mapping exists on both write and read sides.

InvalidDataException: xlang bitmap mismatch

Cause: Writer/reader disagree on Xlang mode.

Fix: Use the same Xlang(...) value on both peers.

Fory writer = Fory.Builder().Xlang(true).Build();
Fory reader = Fory.Builder().Xlang(true).Build();

Schema Version Mismatch in Strict Mode

Symptom: InvalidDataException while deserializing generated struct types.

Cause: Compatible(false) with CheckStructVersion(true) enforces exact schema hashes.

Fix options:

  • Enable Compatible(true) for schema evolution.
  • Keep writer/reader model definitions in sync.

Circular Reference Failures

Symptom: Stack overflow-like recursion or graph reconstruction issues.

Cause: Cyclic graphs with TrackRef(false).

Fix:

Fory fory = Fory.Builder().TrackRef(true).Build();

Concurrency Issues

Cause: Sharing a single Fory instance across threads.

Fix: Use BuildThreadSafe().

Validation Commands

Run C# tests from repo root:

cd csharp
dotnet test Fory.sln -c Release