protected override JsonConverter CreateGenericConverter <T>(Type type, SerializerRegistry registry) { var info = new RefInfo(type, registry); Type converterType = typeof(RefConverter <,>) .MakeGenericType(info.TargetType, info.IDType); return((JsonConverter)Activator.CreateInstance(converterType, info.IDConverter)); }
void setObjRef(IPersists referer, int objId, int refId) { if (!references.Contains(referer)) { references[referer] = new ArrayList(); } RefInfo ri = new RefInfo(objId, refId); ArrayList al = (ArrayList)references[referer]; al.Add(ri); }
public void CheckReferenceConverter(ContentReference contentReference, AdminViewModel model) { RefInfo refInfo = new RefInfo(); refInfo.Ref = contentReference; refInfo.Code = _referenceConverter.GetCode(contentReference); refInfo.DbId = _referenceConverter.GetObjectId(contentReference); refInfo.CatalogType = _referenceConverter.GetContentType(contentReference).ToString(); refInfo.RootRef = _referenceConverter.GetRootLink(); model.Refs.Add(refInfo); }
public bool GetExtractInfo(ExtractInfo extractInfo) { bool result = false; ForEachMember(extractInfo.TargetType, m => result |= AddMappingInfo(m, extractInfo) ); RefInfo refTable = GetRefInfo(extractInfo); if (refTable != null) { extractInfo.RefTable = refTable; result = true; } return(result); }
public DarksVMData(Module module, void *data) { var header = (VMDAT_HEADER *)data; if (header->MAGIC != 0x68736966) { throw new InvalidProgramException(); } references = new Dictionary <uint, RefInfo>(); strings = new Dictionary <uint, string>(); exports = new Dictionary <uint, DarksVMExportInfo>(); var ptr = (byte *)(header + 1); for (var i = 0; i < header->MD_COUNT; i++) { var id = Utils.ReadCompressedUInt(ref ptr); var token = (int)Utils.FromCodedToken(Utils.ReadCompressedUInt(ref ptr)); references[id] = new RefInfo { module = module, token = token }; } for (var i = 0; i < header->STR_COUNT; i++) { var id = Utils.ReadCompressedUInt(ref ptr); var len = Utils.ReadCompressedUInt(ref ptr); strings[id] = new string((char *)ptr, 0, (int)len); ptr += len << 1; } for (var i = 0; i < header->EXP_COUNT; i++) { exports[Utils.ReadCompressedUInt(ref ptr)] = new DarksVMExportInfo(ref ptr, module); } KoiSection = (byte *)data; Module = module; moduleVMData[module] = this; }
public void GetRefInfo(string document, string @ref, bool expectedIsNested, bool expectedIsLocal, string expectedUri, string expectedPath) { var refInfo = RefInfo.GetRefInfo(document, @ref); if (!new Uri(expectedUri, UriKind.RelativeOrAbsolute).IsAbsoluteUri) { expectedUri = Path.Combine(Directory.GetCurrentDirectory(), expectedUri); expectedUri = new Uri(Path.GetFullPath(expectedUri)).AbsoluteUri.ToString(); } else { expectedUri = new Uri(expectedUri).AbsoluteUri.ToString(); } var absoluteUri = refInfo.AbsoluteDocumentUri.AbsoluteUri.ToString(); refInfo.IsNestedInThisDocument.ShouldBe(expectedIsNested); refInfo.IsLocal.ShouldBe(expectedIsLocal); absoluteUri.ShouldBe(expectedUri); refInfo.InDocumentPath.ShouldBe(expectedPath); }
void setObjRef(IPersists referer, int objId, int refId) { if (!references.Contains(referer)) references[referer] = new ArrayList(); RefInfo ri = new RefInfo(objId, refId); ArrayList al = (ArrayList)references[referer]; al.Add(ri); }
public virtual void ApplyRefReplacement(RefInfo refInfo, JObject rootJObj, JProperty refProperty, JToken replacement, Uri fromDocument) { refProperty.Parent.Replace(replacement); }
public virtual bool ShouldResolveReference(RefInfo refInfo) => true;
public override bool ShouldResolveReference(RefInfo refInfo) => refInfo.IsLocal;