public void AddValue(string name, object value, System.Type tp) { if (!this.Ready) throw new System.InvalidOperationException(EXCEPTION_INVALIDSTATE_MSG); if (value != null && !TypeUtil.IsType(value.GetType(), tp)) throw new TypeArgumentMismatchException(value.GetType(), tp, "Value must be of the type specified.", "value"); if (TypeUtil.IsType(tp, typeof(UnityEngine.Object))) { this.AddUnityObjectReference(name, value as UnityEngine.Object); } else if (tp.IsListType(true)) { this.AddList(name, value as System.Collections.IList, tp.GetElementTypeOfListType(), tp.IsArray); } else { _currentInfo.AddValue(name, value, tp); } }
public object GetValue(string name, System.Type tp) { if (!this.Ready) throw new System.InvalidOperationException(EXCEPTION_INVALIDSTATE_MSG); if(TypeUtil.IsType(tp, typeof(UnityEngine.Object))) { return this.GetUnityObjectReference(name); } else if(tp.IsListType(true)) { var value = _currentInfo.GetValue(name, typeof(DummyList)) as DummyList; if(value != null) { return value.List; } else { return null; } } else { return _currentInfo.GetValue(name, tp); } }