public override void WriteTo(Stream stream)
        {
            var rawData = new StreamRawData();

            rawData.Name       = this.Name;
            rawData.DataBuffer = this.Data.ToByteArray();

            WriteRawDataTo(stream, rawData);
        }
        public override void WriteTo(Stream stream)
        {
            var rawData = new StreamRawData();

            rawData.Name       = this.Name;
            rawData.DataBuffer = BitConverter.GetBytes(this.Data);

            WriteRawDataTo(stream, rawData);
        }
        public override void WriteTo(Stream stream)
        {
            var rawData = new StreamRawData();

            rawData.Name       = this.Name;
            rawData.DataBuffer = _stringEncoding.GetBytes(this.Data);

            WriteRawDataTo(stream, rawData);
        }
        // 限定公開静的メソッド

        protected static void WriteRawDataTo(Stream stream, StreamRawData rawData)
        {
            using (var bw = new BinaryWriter(stream, Encoding.Default, true))
            {
                var nameBuffer = Encoding.UTF8.GetBytes(rawData.Name);
                bw.Write((UInt16)nameBuffer.Length);
                bw.Write(nameBuffer);

                bw.Write((UInt64)rawData.DataBuffer.Length);
                bw.Write(rawData.DataBuffer);
            }
        }
        public override void WriteTo(Stream stream)
        {
            var ms = new MemoryStream();

            using (var bw = new BinaryWriter(ms))
            {
                bw.Write(this.Data.Year);
                bw.Write(this.Data.Month);
                bw.Write(this.Data.Day);
                bw.Write(this.Data.Hour);
                bw.Write(this.Data.Minute);
                bw.Write(this.Data.Second);
                bw.Write(this.Data.Millisecond);
            }

            var rawData = new StreamRawData();

            rawData.Name       = this.Name;
            rawData.DataBuffer = ms.ToArray();
            WriteRawDataTo(stream, rawData);
        }