Friday, February 19, 2010

.Net Framework Application Development Foundation(2)--Samples

1. FileSystemWatcher Sample:
class Program
{
static void Main(string[] args)
{
FileSystemWatcher fsw = new FileSystemWatcher(@"d:\");


fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.CreationTime;
fsw.IncludeSubdirectories = true;

fsw.Created += new FileSystemEventHandler(fsw_SthHappened);
fsw.Deleted += new FileSystemEventHandler(fsw_SthHappened);
fsw.Renamed += new RenamedEventHandler(fsw_Renamed);
fsw.EnableRaisingEvents = true;
while( true )
{
Thread.Sleep(100);
}
}

static void fsw_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine(e.Name + " => "+ e.ChangeType + " => " + e.OldName + " => " + e.FullPath + " -- " + DateTime.Now.ToLongTimeString());
}

static void fsw_SthHappened(object sender, FileSystemEventArgs e)
{
Console.WriteLine(e.Name + "=> "+ e.ChangeType + " => " + e.FullPath + " -- " + DateTime.Now.ToLongTimeString());
}
}

2. Serialization
using System;
using System.Collections.Specialized;
using System.Diagnostics;
using System.IO.Compression;
using System.IO.IsolatedStorage;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Security.Permissions;
using System.Text;
using System.Reflection;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Xml.Serialization;

namespace ExplainNotes4
{
class Program
{
static void Main(string[] args)
{
//FileStream fs = new FileStream(@"d:\home\serializeDate.data", FileMode.Create, FileAccess.Write);
//Invoice aTax = new Invoice() {ItemName = "For DIY", ReleaseDate = DateTime.Now, Number = 100, Price = 12.8M};
//aTax.SetTotal();
//BinaryFormatter bf = new BinaryFormatter();
//bf.Serialize( fs , aTax);
//fs.Close();
//**************************************** using soapFormatter ****************
//FileStream fs = new FileStream(@"d:\home\serializeDate.xml", FileMode.Create, FileAccess.Write);
//Invoice aTax = new Invoice() { ItemName = "For DIY", ReleaseDate = DateTime.Now, Number = 100, Price = 12.8M };
//aTax.SetTotal();
//SoapFormatter sf = new SoapFormatter();
//sf.Serialize(fs, aTax);
//fs.Close();

//FileStream fs = new FileStream(@"d:\home\serializeDate.data", FileMode.Open , FileAccess.Read);
//Invoice another = new Invoice();
//BinaryFormatter bf = new BinaryFormatter();
//another = (Invoice) bf.Deserialize(fs);
//fs.Close();

//Console.WriteLine(another.Total);
FileStream fs = new FileStream(@"d:\home\serializeDate.xml", FileMode.Create, FileAccess.Write);
Invoice aTax = new Invoice() { ItemName = "For DIY", ReleaseDate = DateTime.Now, Number = 100, Price = 12.8M };
aTax.SetTotal();
XmlSerializer xs = new XmlSerializer(typeof(Invoice));
xs.Serialize(fs, aTax);
fs.Close();
}
}

[Serializable]
class Invoice : IDeserializationCallback
{
public string ItemName { set; get; }
public DateTime ReleaseDate { set; get; }
public int Number { set; get; }
public decimal Price { set; get; }

public decimal Total { get; private set; }

public void Sumary()
{ Console.WriteLine("this is an invoice.");}

public void SetTotal()
{
if (Price != 0 && Number != 0)
Total = Price*Number;
else
{
throw new NotSupportedException();
}
}

public void OnDeserialization(object sender)
{
Console.WriteLine("i make it");
}
public Invoice(){}
}

}

No comments:

Post a Comment