예제 #1
0
        public static void Serialize(FileInfo file, Action <GenericWriter> serializer)
        {
            file.Refresh();

            if (file.Directory != null && !file.Directory.Exists)
            {
                file.Directory.Create();
            }

            if (!file.Exists)
            {
                file.Create().Close();
            }

            file.Refresh();

            using (var fs = file.OpenWrite())
            {
                var writer = new BinaryFileWriter(fs, true);

                try
                {
                    serializer(writer);
                }
                finally
                {
                    writer.Flush();
                    writer.Close();
                }
            }
        }
예제 #2
0
        public static void SerializeBlock(GenericWriter writer, Action <GenericWriter> serializer)
        {
            byte[] data = Array.Empty <byte>();

            if (serializer != null)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    BinaryFileWriter w = new BinaryFileWriter(ms, true);

                    try
                    {
                        serializer(w);

                        w.Flush();

                        data = ms.ToArray();
                    }
                    finally
                    {
                        w.Close();
                    }
                }
            }

            writer.Write(0x0C0FFEE0);
            writer.Write(data.Length);

            for (int i = 0; i < data.Length; i++)
            {
                writer.Write(data[i]);
            }
        }
예제 #3
0
        public static void Serialize(FileInfo file, Action <IGenericWriter> serializer)
        {
            file.Refresh();

            if (file.Directory?.Exists == false)
            {
                file.Directory.Create();
            }

            if (!file.Exists)
            {
                file.Create().Close();
            }

            file.Refresh();

            using FileStream fs = file.OpenWrite();
            BinaryFileWriter writer = new BinaryFileWriter(fs, true);

            try
            {
                serializer(writer);
            }
            finally
            {
                writer.Flush();
                writer.Close();
            }
        }
예제 #4
0
		public static void Serialize(FileInfo file, Action<GenericWriter> serializer)
		{
			file.Refresh();

			if (file.Directory != null && !file.Directory.Exists)
			{
				file.Directory.Create();
			}

			if (!file.Exists)
			{
				file.Create().Close();
			}
				
			file.Refresh();

			using (var fs = file.OpenWrite())
			{
				var writer = new BinaryFileWriter(fs, true);

				try
				{
					serializer(writer);
				}
				finally
				{
					writer.Flush();
					writer.Close();
				}
			}
		}
예제 #5
0
        private void SaveTypeDatabase(string path, List <Type> types)
        {
            var bfw = new BinaryFileWriter(path, false);

            bfw.Write(types.Count);

            foreach (Type type in types)
            {
                bfw.Write(type.FullName);
            }

            bfw.Flush();
            bfw.Close();
        }
예제 #6
0
        private static void SaveTypeDatabase(string path, IReadOnlyCollection <Type> types)
        {
            BinaryFileWriter bfw = new BinaryFileWriter(path, false);

            bfw.Write(types.Count);

            foreach (Type type in types)
            {
                bfw.Write(type.FullName);
            }

            bfw.Flush();

            bfw.Close();
        }
예제 #7
0
		private void SaveTypeDatabase(string path, List<Type> types)
		{
			var bfw = new BinaryFileWriter(path, false);

			bfw.Write(types.Count);

			foreach (Type type in types)
			{
				bfw.Write(type.FullName);
			}

			bfw.Flush();
			bfw.Close();
		}