http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html http://blog.csdn.net/daunxx/article/details/51881956