public void Read(out System.String data) { System.Diagnostics.Debug.Assert(Reading); if (CoreObject.Pointer == IntPtr.Zero) { data = ""; return; } unsafe { IntPtr strPtr = XndSDK.XNDAttrib_ReadStringA(CoreObject); data = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(strPtr); XndSDK.XNDAttrib_FreeStringA(strPtr); } }
public bool Read(out EngineNS.RName rname) { System.Diagnostics.Debug.Assert(Reading); rname = EngineNS.RName.EmptyName; if (CoreObject.Pointer == IntPtr.Zero) { return(false); } byte ver = 0; Read(out ver); unsafe { switch (ver) { case 0: { IntPtr strPtr = XndSDK.XNDAttrib_ReadStringA(CoreObject); var name = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(strPtr); XndSDK.XNDAttrib_FreeStringA(strPtr); byte type; Read(out type); rname = EngineNS.RName.GetRName(name, (RName.enRNameType)type); } break; case 1: { var se = EngineNS.IO.Serializer.TypeDescGenerator.Instance.GetSerializer(typeof(EngineNS.RName)); rname = (EngineNS.RName)se.ReadValue(this); } break; } } return(true); }