public static GetWritePrimitive ( |
||
type | ||
return |
public void GetStaticMethods(Type type, out MethodInfo writer, out MethodInfo reader) { var containerType = typeof(Primitives); writer = Primitives.GetWritePrimitive(type); reader = Primitives.GetReaderPrimitive(type); }
public MethodInfo GetStaticWriter(Type type) { Debug.Assert(type.IsEnum); var underlyingType = Enum.GetUnderlyingType(type); return(Primitives.GetWritePrimitive(underlyingType)); }
public void GetStaticMethods(Type type, out MethodInfo writer, out MethodInfo reader) { Debug.Assert(type.IsEnum); var underlyingType = Enum.GetUnderlyingType(type); writer = Primitives.GetWritePrimitive(underlyingType); reader = Primitives.GetReaderPrimitive(underlyingType); }
public MethodInfo GetStaticWriter(Type type) { #if !NET35 && !NET40 Debug.Assert(type.GetTypeInfo().IsEnum); #else Debug.Assert(type.IsEnum); #endif var underlyingType = Enum.GetUnderlyingType(type); return(Primitives.GetWritePrimitive(underlyingType)); }
static Dictionary <Type, TypeData> GenerateTypeData(Type[] types) { var map = new Dictionary <Type, TypeData>(types.Length); // TypeID 0 is reserved for null ushort typeID = 1; foreach (var type in types) { var writer = Primitives.GetWritePrimitive(type); var reader = Primitives.GetReadPrimitive(type); if ((writer != null) != (reader != null)) { throw new InvalidOperationException(String.Format("Missing a read or write primitive for {0}", type.FullName)); } var isStatic = writer != null; if (type.IsPrimitive && isStatic == false) { throw new InvalidOperationException(String.Format("Missing primitive read/write methods for {0}", type.FullName)); } var td = new TypeData(typeID++); if (isStatic) { td.WriterMethodInfo = writer; td.ReaderMethodInfo = reader; td.IsDynamic = false; } else { if (typeof(System.Runtime.Serialization.ISerializable).IsAssignableFrom(type)) { throw new InvalidOperationException(String.Format("Cannot serialize {0}: ISerializable not supported", type.FullName)); } td.IsDynamic = true; } map[type] = td; } return(map); }
public MethodInfo GetStaticWriter(Type type) { return(Primitives.GetWritePrimitive(type)); }
public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob) { MethodInfo method = Primitives.GetWritePrimitive(staticType); method.Invoke(null, new object[] { stream, ob }); }
public void GetStaticMethods(Type type, out MethodInfo writer, out MethodInfo reader) { writer = Primitives.GetWritePrimitive(type); reader = Primitives.GetReaderPrimitive(type); }