Exemple #1
0
        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);
                    }
                }
            }
        }
Exemple #2
0
        internal static HomophoneDictionary Deserialize(BinaryReader binaryReader)
        {
            var homophoneDictionary = new HomophoneDictionary();

            binaryReader.ReadInt32();
            homophoneDictionary.Length = binaryReader.ReadInt32();
            homophoneDictionary.Count  = binaryReader.ReadInt16();
            homophoneDictionary.Offset = binaryReader.ReadInt16();
            binaryReader.ReadBytes(8);
            homophoneDictionary.HomophoneUnitTable = new List <HomophoneUnit>();
            for (var i = 0; i < homophoneDictionary.Count; i++)
            {
                homophoneDictionary.HomophoneUnitTable.Add(HomophoneUnit.Deserialize(binaryReader));
            }
            binaryReader.ReadInt16();
            return(homophoneDictionary);
        }