/// <summary> /// Uses reflection to create an SDMap from all of the SD /// serializable types in an object /// </summary> /// <param name="obj">Class or struct containing serializable types</param> /// <returns>An SDMap holding the serialized values from the /// container object</returns> public static OSDMap SerializeMembers(object obj) { Type t = obj.GetType(); FieldInfo[] fields = t.GetFields(); OSDMap map = new OSDMap(fields.Length); for (int i = 0; i < fields.Length; i++) { FieldInfo field = fields[i]; if (!Attribute.IsDefined(field, typeof(NonSerializedAttribute))) { OSD serializedField = OSD.FromObject(field.GetValue(obj)); if (serializedField.Type != OSDType.Unknown || field.FieldType == typeof(string) || field.FieldType == typeof(byte[])) { map.Add(field.Name, serializedField); } } } return(map); }