http://www.cnblogs.com/clever101/archive/2009/10/31/1593707.html http://www.cnblogs.com/carekee/articles/1935789.html