TypeCollector would need to allow members that aren't readable or writable.
MemberSerializationInfo.GetSerializeMethodString() would need to write out reflection code for accessing the member.
Having to resort to reflection sort of feels against the idea of code generation, but can still work on AOT platforms with the right settings.
Current workaround is just not using private members.