public int Transfer(T source, Addressable destination, long index) { string value = property.GetValue(source); int length = value != null?Encoding.UTF8.GetByteCount(value) : -1; destination.WriteInt32(index + 0, length); destination.WriteString(index + 4, value); return(NormalizeLength(length)); }