Esempio n. 1
0
 static bool Read(ViIStream IS, object obj)
 {
     FieldInfo[] fieldList = ViSealedDataAssisstant.GetFeilds(obj.GetType());
     foreach (FieldInfo field in fieldList)
     {
         if (field.FieldType.Equals(typeof(Int32)))
         {
             if (ReadInt32Field(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Equals(typeof(String)))
         {
             if (ReadStringField(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else
         {
             if (field.FieldType.IsGenericType)
             {
                 field.FieldType.GetGenericTypeDefinition();
                 if (field.FieldType.GetGenericTypeDefinition() == ViStaticArrayType)
                 {
                     if (ReadArray(IS, field, ref obj) == false)
                     {
                         return(false);
                     }
                 }
                 else
                 {
                     if (ReadStructInt32Field(IS, field, ref obj) == false)
                     {
                         return(false);
                     }
                 }
             }
             else
             {
                 object fieldObject = field.GetValue(obj);
                 if (Read(IS, fieldObject) == false)
                 {
                     return(false);
                 }
                 field.SetValue(obj, fieldObject);
             }
         }
     }
     return(true);
 }
Esempio n. 2
0
 static bool Read(ViStringIStream IS, object obj)
 {
     FieldInfo[] fieldList = ViSealedDataAssisstant.GetFeilds(obj.GetType());
     foreach (FieldInfo field in fieldList)
     {
         if (field.FieldType.Equals(typeof(Int32)))
         {
             if (ReadInt32Field(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Equals(typeof(String)))
         {
             if (ReadStringField(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Name.StartsWith("ViMask32"))
         {
             if (ReadStructInt32Field(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Name.StartsWith("ViEnum32"))
         {
             if (ReadStructInt32Field(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Name.StartsWith("ViForeignKey32"))
         {
             if (ReadStructInt32Field(IS, field, ref obj) == false)
             {
                 return(false);
             }
         }
         else if (field.FieldType.Name.StartsWith("ViStaticArray"))
         {
             object fieldObject = field.GetValue(obj);
             int    len         = ViArrayParser.Length(fieldObject);
             for (int idx = 0; idx < len; ++idx)
             {
                 object elementObject = ViArrayParser.Object(fieldObject, idx);
                 if (Read(IS, elementObject) == false)
                 {
                     return(false);
                 }
                 field.SetValue(obj, fieldObject);
             }
         }
         else
         {
             object fieldObject = field.GetValue(obj);
             if (Read(IS, fieldObject) == false)
             {
                 return(false);
             }
             field.SetValue(obj, fieldObject);
         }
     }
     return(true);
 }