http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html http://www.cnblogs.com/itech/archive/2010/02/09/1666393.html