protected virtual T GetDataByPdbType(string jsonData, PdbJsonDataFormat jsonDataFormat) { var dblSlash = Encoding.UTF8.GetString(new byte[] { 0x5C, 0x5C }); var singleSlash = Encoding.UTF8.GetString(new byte[] { 0x5C }); if (jsonDataFormat == PdbJsonDataFormat.RawString) { jsonData = jsonData.Replace(singleSlash, dblSlash); } var data = Encoding.UTF8.GetBytes(jsonData); var jsonSerializer = new DataContractJsonSerializer(typeof(T)); using (var ms = new MemoryStream(data)) { return((T)jsonSerializer.ReadObject(ms)); } }
public override IPdbJsonDeserializedTypes GetData(string jsonData, PdbJsonDataFormat jsonDataFormat) { //the base type's GetDataByPdbType cannot return null so we check it in every extended type return(string.IsNullOrWhiteSpace(jsonData) ? null : GetDataByPdbType(jsonData, jsonDataFormat)); }
public abstract IPdbJsonDeserializedTypes GetData(string jsonData, PdbJsonDataFormat jsonDataFormat);
/// <summary> /// Factory method to skip instantiating <see cref="CompilandJsonData"/> /// and just skip straight to the data. /// </summary> /// <param name="jsonData"></param> /// <param name="jsonDataFormat"></param> /// <returns></returns> public static LinesSwitch.PdbCompiland Parse(string jsonData, PdbJsonDataFormat jsonDataFormat) { var cjd = new CompilandJsonData(); return((LinesSwitch.PdbCompiland)cjd.GetData(jsonData, jsonDataFormat)); }