public static Result ReadResult(this ObjectReader reader, int index) { var status = reader.ReadInt32(); var exceptionMessage = reader.ReadStringOrReference(); var value = new Result(); reader.ReferenceContainer[index] = value; value._Status = status; value._Message = exceptionMessage; return(value); }
public static Result ReadGResult(this ObjectReader reader, int index) { var status = reader.ReadInt32(); var exceptionMessage = reader.ReadStringOrReference(); var elementType = reader.ReadType(); var value = Activator.CreateInstance(DefineTypes.GResult.MakeGenericType(elementType)) as Result; reader.ReferenceContainer[index] = value; value._Status = status; value._Message = exceptionMessage; var resultValue = reader.Deserialize(); value.SetValue(resultValue); return(value); }
public static StringBuilder[] ReadStringBuilderArray(this ObjectReader reader) { var length = reader.ReadInt32(); StringBuilder[] value = new StringBuilder[length]; for (int i = 0; i < length; i++) { var str = reader.ReadStringOrReference(); if (str == null) { value[i] = null; } else { value[i] = new StringBuilder(str); } } return(value); }
public static Type ReadType(this ObjectReader reader) { var simplifyQualifiedName = reader.ReadStringOrReference(); Type type; if (!TypeCache.TryGetValue(simplifyQualifiedName, out type)) { lock (TypeCache) if (!TypeCache.TryGetValue(simplifyQualifiedName, out type)) { type = SerializationHelper.RecoveryQualifiedName(simplifyQualifiedName); if (type == null) { throw new ArgumentException("无法找到简化限定符的类型 " + simplifyQualifiedName); } TypeCache.Add(simplifyQualifiedName, type); } } return(type); }
public static StringBuilder ReadStringBuilder(this ObjectReader reader) { var str = reader.ReadStringOrReference(); return(new StringBuilder(str)); }