コード例 #1
0
 public void Binary1()
 {
     Binary b = new Binary();
     b.Data = new byte[] { 1, 2, 3, 4 };
     b.Name = "ATTACH";
     SerializeTest(b, "Binary1.xml");
 }
コード例 #2
0
 public BinarySerializer(Binary b)
     : base(b)
 {
     this.m_Binary = b;
 }
コード例 #3
0
        public void BINARY2()
        {
            iCalendar iCal = new iCalendar();

            // Create a test event
            Event evt = iCal.Create<Event>();
            evt.Summary = "Test Event";
            evt.Start = new iCalDateTime(2007, 10, 15, 8, 0, 0);
            evt.Duration = TimeSpan.FromHours(1);
            
            // Get a data file
            string loremIpsum = UnicodeEncoding.Default.GetString(ReadBinary(@"Data\LoremIpsum.txt"));
            StringBuilder sb = new StringBuilder();
            // If we copy it 300 times, we should end up with a file over 2.5MB in size.
            for (int i = 0; i < 300; i++)
                sb.AppendLine(loremIpsum);

            // Add an attachment to this event
            Binary binary = new Binary();            
            binary.Data = UnicodeEncoding.Default.GetBytes(sb.ToString());
            evt.AddAttachment(binary);

            iCalendarSerializer serializer = new iCalendarSerializer(iCal);
            if (!Directory.Exists(@"Calendars\Serialization\Temp"))
                Directory.CreateDirectory(@"Calendars\Serialization\Temp");
            serializer.Serialize(@"Calendars\Serialization\Temp\BINARY2.ics");

            iCal = iCalendar.LoadFromFile(@"Calendars\Serialization\Temp\BINARY2.ics");
            evt = iCal.Events[0];
            binary = evt.Attach[0];

            // Ensure the generated and serialized strings match
            Assert.AreEqual(sb.ToString(), UnicodeEncoding.Default.GetString(binary.Data));

            // Times to finish the test for attachment file sizes (on my computer): 
            //  0.92MB = 1.2 seconds
            //  2.76MB = 6 seconds
            //  4.6MB = 15.1 seconds
            //  9.2MB = 54 seconds
        }
コード例 #4
0
        public void BINARY1()
        {
            iCalendar iCal = new iCalendar();
            
            // Create a test event
            Event evt = iCal.Create<Event>();
            evt.Summary = "Test Event";
            evt.Start = new iCalDateTime(2007, 10, 15, 8, 0, 0);
            evt.Duration = TimeSpan.FromHours(1);

            // Add an attachment to this event
            Binary binary = new Binary();
            binary.AddParameter("X-FILENAME", "WordDocument.doc");
            binary.Data = ReadBinary(@"Data\Test.doc");
            evt.AddAttachment(binary);

            iCalendarSerializer serializer = new iCalendarSerializer(iCal);
            if (!Directory.Exists(@"Calendars\Serialization\Temp"))
                Directory.CreateDirectory(@"Calendars\Serialization\Temp");
            serializer.Serialize(@"Calendars\Serialization\Temp\BINARY1.ics");

            iCal = iCalendar.LoadFromFile(@"Calendars\Serialization\Temp\BINARY1.ics");
            evt = iCal.Events[0];
            binary = evt.Attach[0];

            Assert.IsTrue(CompareBinary(@"Data\Test.doc", binary.Data), "Serialized version of Test.doc did not match the deserialized version.");
        }
コード例 #5
0
 virtual public void RemoveAttachment(Binary binary)
 {
     if (Attach == null)
         return;
     else
     {
         int index = Array.IndexOf<Binary>(Attach, binary);
         if (index >= 0)
         {
             Binary[] attachments = new Binary[Attach.Length - 1];
             Array.Copy(Attach, 0, attachments, 0, index);
             Array.Copy(Attach, index + 1, attachments, index, attachments.Length - index);
             Attach = attachments;
         }
     }
 }
コード例 #6
0
        virtual public void AddAttachment(Binary binary)
        {
            binary.Name = "ATTACH";

            if (Attach == null)
            {
                Attach = new Binary[] { binary };
            }
            else
            {
                Binary[] attachments = Attach;
                Attach = new Binary[Attach.Length + 1];
                attachments.CopyTo(Attach, 0);
                Attach[Attach.Length - 1] = binary;
            }
        }
コード例 #7
0
        virtual public void AddAttachment(byte[] data)
        {
            Binary binary = new Binary();
            binary.Data = data;

            AddAttachment(binary);
        }