static ChineseChar() { var executingAssembly = Assembly.GetExecutingAssembly(); using (var manifestResourceStream = executingAssembly.GetManifestResourceStream("Dragon.Framework.Infrastructure.Pinyin.Resources.PinyinDictionary.resources")) { using (var resourceReader = new ResourceReader(manifestResourceStream ?? Stream.Null)) { resourceReader.GetResourceData("PinyinDictionary", out _, out var buffer); using (var binaryReader = new BinaryReader(new MemoryStream(buffer))) { PinyinDictionary = PinyinDictionary.Deserialize(binaryReader); } } } using (var manifestResourceStream2 = executingAssembly.GetManifestResourceStream("Dragon.Framework.Infrastructure.Pinyin.Resources.CharDictionary.resources")) { using (var resourceReader2 = new ResourceReader(manifestResourceStream2 ?? Stream.Null)) { resourceReader2.GetResourceData("CharDictionary", out _, out var buffer); using (var binaryReader2 = new BinaryReader(new MemoryStream(buffer))) { CharDictionary = CharDictionary.Deserialize(binaryReader2); } } } using (var manifestResourceStream3 = executingAssembly.GetManifestResourceStream("Dragon.Framework.Infrastructure.Pinyin.Resources.HomophoneDictionary.resources")) { using (var resourceReader3 = new ResourceReader(manifestResourceStream3 ?? Stream.Null)) { resourceReader3.GetResourceData("HomophoneDictionary", out _, out var buffer); using (var binaryReader3 = new BinaryReader(new MemoryStream(buffer))) { HomophoneDictionary = HomophoneDictionary.Deserialize(binaryReader3); } } } using (var manifestResourceStream4 = executingAssembly.GetManifestResourceStream("Dragon.Framework.Infrastructure.Pinyin.Resources.StrokeDictionary.resources")) { using (var resourceReader4 = new ResourceReader(manifestResourceStream4 ?? Stream.Null)) { resourceReader4.GetResourceData("StrokeDictionary", out _, out var buffer); using (var binaryReader4 = new BinaryReader(new MemoryStream(buffer))) { StrokeDictionary = StrokeDictionary.Deserialize(binaryReader4); } } } }
internal static StrokeDictionary Deserialize(BinaryReader binaryReader) { var strokeDictionary = new StrokeDictionary(); binaryReader.ReadInt32(); strokeDictionary.Length = binaryReader.ReadInt32(); strokeDictionary.Count = binaryReader.ReadInt32(); strokeDictionary.Offset = binaryReader.ReadInt16(); binaryReader.ReadBytes(24); strokeDictionary.StrokeUnitTable = new List <StrokeUnit>(); for (var i = 0; i < strokeDictionary.Count; i++) { strokeDictionary.StrokeUnitTable.Add(StrokeUnit.Deserialize(binaryReader)); } binaryReader.ReadInt16(); return(strokeDictionary); }