I am working with introspection and it is working as expected with custom classes but not with (at least some, I have not tested too much) standard library types (classes?) for instance if I have a custom class called MyTCPServer (please note it is not a subclass of TCPServer the name is just for comparison) and it has properties MaxConnections As Integer, Port As Integer and even IsListening As a Read only Boolean. When an instance of MyTCPServer is iterating through fields MaxConnections, Port and IsListening all return with IsPrimitive = True.
If you have an instance of TCPServer primitive types MaxConnections, Port, and Boolean are not returning with IsPrimitive = True, it is always False.
Additionally if MyTCPServer is a subclass of TCPServer it still has the same issue with the primitives. I have tested my serialization code on subclasses of custom classes and they work as intended.