protected unsafe void TrySetValues() { if (OffsetsType == null) { return; } FieldInfo[] fields = OffsetsType.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); int i = 0; foreach (FieldInfo info in fields) { if (info.Name.StartsWith("_article") && !info.Name.Contains("count")) { foreach (var a in _data._articles) { if (a.Index == i) { Set(i, a); break; } } } else if (info.Name.StartsWith("_params") && !info.Name.Contains("count")) { foreach (var a in _data._paramLists) { if (a.Index == i) { Set(i, a); break; } } } i++; } }
protected unsafe void TryGetValues() { if (OffsetsType == null) { return; } FieldInfo[] fields = OffsetsType.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic); int i = 0; foreach (FieldInfo info in fields) { if (info.Name.StartsWith("_article") && !info.Name.Contains("count")) { _data._articles.Add(_data.Parse <ArticleNode>(*(bint *)(_address + i))); } else if (info.Name.StartsWith("_params") && !info.Name.Contains("count")) { _data._paramLists.Add(_data.Parse <RawParamList>(*(bint *)(_address + i))); } i += Marshal.SizeOf(info.FieldType); } }