public override object ReadValue(HessianReader reader, HessianContext context, Type objectType, byte initialOctet) { if (StringConverter.CanRead(initialOctet)) { var typeName = (string)StringConverter.ReadValue(reader, context, typeof(string), initialOctet); var type = GetType(typeName); context.TypeRefs.AddItem(type); return(type); } else if (IntConverter.CanRead(initialOctet)) { var typeIndex = (int)IntConverter.ReadValue(reader, context, typeof(int), initialOctet); return(context.TypeRefs.GetItem(typeIndex)); } else { throw Exceptions.UnExpectedInitialOctet(this, initialOctet); } }
public override bool CanRead(byte initialOctet) { return(StringConverter.CanRead(initialOctet) || IntConverter.CanRead(initialOctet)); }