Exemplo n.º 1
0
        public object FromDictionary(ICustomTypeDeserializerRegistry registry, Type contractType, Dictionary <byte, object> parameters)
        {
            object obj = Activator.CreateInstance(contractType);

            MethodInfo getCustomTypeBiserializer = registry.GetType().GetMethod("GetCustomTypeDeserializer");

            foreach (var indexToType in _contractTypeToClassInfoInfos[contractType])
            {
                if (!parameters.TryGetValue(indexToType.Key, out object paramterObject))
                {
                    continue;
                }

                var gen = getCustomTypeBiserializer.MakeGenericMethod(new Type[] { indexToType.Value.FieldInfo.FieldType });
                var customTypeBiserializerInstance = gen.Invoke(registry, new object[0]);
                var customTypeBiserializerType     = customTypeBiserializerInstance.GetType();
                var deserializionMethod            = customTypeBiserializerType.GetMethod("Deserialize");
                var result = deserializionMethod.Invoke(customTypeBiserializerInstance, new object[] { registry, paramterObject, indexToType.Value.FieldInfo });
                indexToType.Value.FieldInfo.SetValue(obj, result);
            }

            return(obj);
        }
Exemplo n.º 2
0
 public double Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(Convert.ToDouble(obj));
 }
Exemplo n.º 3
0
 public short Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(Convert.ToInt16(obj));
 }
Exemplo n.º 4
0
 public T Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return((T)obj);
 }
Exemplo n.º 5
0
 public Guid Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(new Guid((byte[])obj));
 }
Exemplo n.º 6
0
 public bool Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(Convert.ToBoolean(obj));
 }
Exemplo n.º 7
0
 public T[] Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 8
0
 public T FromDictionary <T>(ICustomTypeDeserializerRegistry registry, Dictionary <byte, object> parameters) where T : new()
 {
     return((T)FromDictionary(registry, typeof(T), parameters));
 }
Exemplo n.º 9
0
 public GameTimeStamp Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(new GameTimeStamp(registry.GetCustomTypeDeserializer <long>().Deserialize(registry, obj, fieldInfo)));
 }
Exemplo n.º 10
0
 public float Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(Convert.ToSingle(obj));
 }
Exemplo n.º 11
0
 public FixPoint[] Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(Array.ConvertAll((long[])obj, FixPoint.FromInternalValue));
 }
Exemplo n.º 12
0
 public FixPoint Deserialize(ICustomTypeDeserializerRegistry registry, object obj, FieldInfo fieldInfo)
 {
     return(FixPoint.FromInternalValue(registry.GetCustomTypeDeserializer <long>().Deserialize(registry, obj, fieldInfo)));
 }