public void JsonDeserializationTestWithProxy() { var assembly = typeof(SerializationTests).Assembly; var resourceName = $"{typeof(SerializationTests).Namespace}.Assets.bravura_metadata.json"; using (var stream = assembly.GetManifestResourceStream(resourceName)) using (var reader = new StreamReader(stream)) { string result = reader.ReadToEnd(); var metadata = LazyLoadJsonProxy <ISMuFLFontMetadata> .Create(result); var defaults = metadata.EngravingDefaults; var bboxes = metadata.GlyphBBoxes; var prop1 = bboxes.AccdnCombDot; var prop2 = bboxes.WindTightEmbouchure; var prop3 = bboxes.WindRimOnly; var prop4 = bboxes.MensuralLongaVoidStemDownRight; var prop5 = bboxes.AccSagittalFlat11LDown; var prop6 = bboxes.NoteheadSquareBlackWhite; var prop7 = bboxes.NoteheadWholeWithX; var prop8 = bboxes.ElecMixingConsole; var prop9 = bboxes.ElecPause; var prop10 = bboxes.PictBeaterWoodTimpaniUp; var prop11 = bboxes.AccdnCombLh2RanksEmpty; var prop12 = bboxes.AccSagittalSharp5V13LUp; var prop13 = bboxes.MensuralNoteheadLongaWhite; var prop14 = bboxes.OrnamentTrill; var prop15 = bboxes.OrnamentTremblementCouperin; var prop16 = bboxes.AccSagittalSharp19SUp; var prop17 = bboxes.NoteShapeRoundDoubleWhole; var prop18 = bboxes.WindWeakAirPressure; var prop19 = bboxes.WindRelaxedEmbouchure; var prop20 = bboxes.AccdnCombLh2RanksEmpty; var metadataAsProxy = (LazyLoadJsonProxy)metadata; var elapsedWithProxy = metadataAsProxy.GetTotalDeserializationTimeWithChildElements(); Debug.WriteLine(elapsedWithProxy); } }
public static SMuFLFontProfile CreateFromJsonString(string json, bool useLazyProxy = true) { var metadata = useLazyProxy ? LazyLoadJsonProxy <ISMuFLFontMetadata> .Create(json) : JsonConvert.DeserializeObject <SMuFLFontMetadata>(json); return(new SMuFLFontProfile(metadata)); }