<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_永不言拜</title><subtitle type="text">莫等待，光阴不会复来。</subtitle><id>http://feed.cnblogs.com/blog/u/15580/rss</id><updated>2012-02-12T05:42:14Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15580/rss"/><entry><id>http://www.cnblogs.com/genson/archive/2012/02/12/2347843.html</id><title type="text">MongoDb的相关资料</title><summary type="text">MongoDb的相关资料MongoLive：在Chrome里进行MongoDB实时监控http://blog.nosqlfan.com/html/1964.htmlMongoDB的局限性与不足http://blog.nosqlfan.com/html/3166.htmlAdmin Zonehttp://www.mongodb.org/display/DOCS/Admin+ZoneMongoDB Administrationhttp://blog.nosqlfan.com/html/1747.html工具MongoVUE 这是老外开发的一个工具。MagicMongoDBTool 。Advance</summary><published>2012-02-12T05:09:00Z</published><updated>2012-02-12T05:09:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2012/02/12/2347843.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2012/02/12/2347843.html"/><content type="html">&lt;p&gt;MongoDb的相关资料&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MongoLive：在Chrome里进行MongoDB实时监控&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.nosqlfan.com/html/1964.html"&gt;http://blog.nosqlfan.com/html/1964.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MongoDB的局限性与不足&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.nosqlfan.com/html/3166.html"&gt;http://blog.nosqlfan.com/html/3166.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Admin Zone&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Admin+Zone"&gt;http://www.mongodb.org/display/DOCS/Admin+Zone&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MongoDB Administration&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.nosqlfan.com/html/1747.html"&gt;http://blog.nosqlfan.com/html/1747.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;工具&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://www.mongovue.com/" target="_blank"&gt;MongoVUE&lt;/a&gt; 这是老外开发的一个工具。&lt;br /&gt;&amp;nbsp;&lt;a href="https://github.com/magicdict/MagicMongoDBTool" target="_blank"&gt;MagicMongoDBTool&lt;/a&gt; 。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Advanced Queries &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Advanced+Queries"&gt;http://www.mongodb.org/display/DOCS/Advanced+Queries&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span id="title-text"&gt;&lt;a href="http://www.mongodb.org/display/DOCS/MapReduce"&gt;MapReduce&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;a href="http://www.mongodb.org/display/DOCS/MapReduce"&gt;http://www.mongodb.org/display/DOCS/MapReduce&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span id="title-text"&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Aggregation"&gt;Aggregation&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Aggregation"&gt;http://www.mongodb.org/display/DOCS/Aggregation&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;Unique Items with Map-Reduce&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://cookbook.mongodb.org/patterns/unique_items_map_reduce/"&gt;http://cookbook.mongodb.org/patterns/unique_items_map_reduce/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2347843.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2012/02/12/2347843.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2012/01/31/2332670.html</id><title type="text">javascript apply 和call的区别,javascript设计模式</title><summary type="text">javascript apply 和call的区别, http://odetocode.com/Blogs/scott/archive/2007/07/05/function-apply-and-function-call-in-javascript.aspxjavascript设计模式 http://www.cnblogs.com/Darren_code/archive/2011/08/31/JavascripDesignPatterns.html</summary><published>2012-01-31T02:40:00Z</published><updated>2012-01-31T02:40:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2012/01/31/2332670.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2012/01/31/2332670.html"/><content type="html">&lt;p&gt;javascript apply 和call的区别, http://odetocode.com/Blogs/scott/archive/2007/07/05/function-apply-and-function-call-in-javascript.aspx&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;javascript设计模式 http://www.cnblogs.com/Darren_code/archive/2011/08/31/JavascripDesignPatterns.html&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2332670.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2012/01/31/2332670.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2012/01/12/2320467.html</id><title type="text">Adding a QR Code Reader in Flex on Android</title><summary type="text">One of the features I commonly see requested for Android applications is QR code reader or barcode scanner integration. Some native Android applications actually use an external application for QR code/barcode scanning. That, as far as I know, is not an option at the moment in AIR on Android. Howeve</summary><published>2012-01-12T05:11:00Z</published><updated>2012-01-12T05:11:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2012/01/12/2320467.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2012/01/12/2320467.html"/><content type="html">&lt;p&gt;One of the features I commonly see requested for Android applications is QR code reader or barcode scanner integration. Some native Android applications actually use an external application for QR code/barcode scanning. That, as far as I know, is not an option at the moment in AIR on Android. However, thanks to the open source &lt;a href="http://code.google.com/p/zxing/"&gt;ZXing library&lt;/a&gt;, some direction from Amer Dababneh and a &lt;a href="http://codeknow.blogspot.com/2011/04/quick-reader-flex4-xzing-android-air-26.html"&gt;blog post by Michael B&lt;/a&gt;, I was able to create basic sample Flex-based mobile application that accessed the camera and read QR codes. This blog post will show you how.&lt;/p&gt;&lt;p&gt;For any smart asses out there (yes, I mean you Ray) - yes, I can still code. It&amp;rsquo;s just been a while since I had something &amp;ldquo;blogworthy.&amp;rdquo; :)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Create Your Project&lt;/strong&gt;&lt;br /&gt;To begin with, of course, you need to create your new Flex mobile project - I used a standard view-based application. I should note that while I only tested this on Android (via my Nexus One), it&amp;rsquo;s entirely possible that this code will work as is on iOS or Blackberry Tablet OS via the recent Flash Builder 4.5.1 update.&lt;/p&gt;&lt;p&gt;The important thing to note here is that you will need to enable Camera permissions in your app.xml file. This can be done during the new project wizard or by manually adding the below items to your app.xml within the Android &amp;ldquo;manifestAdditions&amp;rdquo; section:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;uses-permission android:name=&lt;span class="cc_value"&gt;"android.permission.CAMERA"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;uses-feature android:name=&lt;span class="cc_value"&gt;"android.hardware.camera.autofocus"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;In my experience, if you forget to do this or don&amp;rsquo;t do it properly, the camera will simply fail silently (which can lead to needless debugging frustration - so just don&amp;rsquo;t forget).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Adding the Camera&lt;/strong&gt;&lt;br /&gt;Now that we&amp;rsquo;ve created our new Flex mobile application, we need to lay out our sample application. My sample is very simple with only a home view that contains the camera, a label to display any results and a button to start the process and capture the QR codes. For reference, I borrowed some of the camera placement code from this &lt;a href="https://docs.google.com/document/d/1KYWGgybAsEaqkqZlMMIhrwgn56SiZn10-8skMAWV9bY/http%3A%2F%2Friasandbox.com%2F%3Fp%3D32"&gt;blog post by Guillaume&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;You can see the visual elements of the page laid out below. The SpriteVisualElement is the container that will hold the view to our camera.&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;s:VGroup width=&lt;span class="cc_value"&gt;"100%"&lt;/span&gt; horizontalAlign=&lt;span class="cc_value"&gt;"center"&lt;/span&gt; id=&lt;span class="cc_value"&gt;"vg"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:SpriteVisualElement id=&lt;span class="cc_value"&gt;"sv"&lt;/span&gt; width=&lt;span class="cc_value"&gt;"360"&lt;/span&gt; height=&lt;span class="cc_value"&gt;"400"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:Label id=&lt;span class="cc_value"&gt;"lbl"&lt;/span&gt; text=&lt;span class="cc_value"&gt;""&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:Button id=&lt;span class="cc_value"&gt;"btn"&lt;/span&gt; label=&lt;span class="cc_value"&gt;"Start Camera"&lt;/span&gt; width=&lt;span class="cc_value"&gt;"220"&lt;/span&gt; height=&lt;span class="cc_value"&gt;"93"&lt;/span&gt; click=&lt;span class="cc_value"&gt;"button1_clickHandler(event)"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;/s:VGroup&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The first time the user clicks the button, it will start the camera. Inside my click handler for the button, I have the following code that first gets an instance of the Camera, attaches it to a VideoDisplay object which is added as a child to our SpriteVisualElement. We also initialize our QRCodeReader class which is from the ZXing library.&lt;/p&gt;&lt;p&gt;&lt;code&gt;if (Camera.isSupported)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;camera=Camera.getCamera();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;camera.setMode(&lt;span class="cc_numeric"&gt;360&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 360&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 24&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.x = 360;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sv.addChild(videoDisplay);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.attachCamera(camera);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.rotation=90;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;qrReader=new QRCodeReader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;btn.label = &lt;span class="cc_value"&gt;"Scan Now"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text = &lt;span class="cc_value"&gt;""&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cameraStarted = true;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text = &lt;span class="cc_value"&gt;"no camera found"&lt;/span&gt;;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;If you ran your app right now (see the full code at the end of this post for all the necessary variables and imports) you would see a view into your device&amp;rsquo;s camera appear once you click the button to start - that is if our QRCodeReader wasn&amp;rsquo;t throwing compile errors. Let&amp;rsquo;s get those fixed.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Modifying the ZXing Library&lt;/strong&gt;&lt;br /&gt;Obviously, in order to create this project you must download the &lt;a href="http://code.google.com/p/zxing/"&gt;ZXing library&lt;/a&gt; from Google Code. Simply dump the library into your &amp;ldquo;src&amp;rdquo; folder where it should be under a com.google.zxing package. As I noted, you will get some complile errors as soon as you try to use the necessary files for QRCodeScanning. Luckily they are very easy to correct as they all involve unnecessary or missing imports.&lt;/p&gt;&lt;p&gt;Here are the changes required to get this working on our project:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;In QRCodeMultiReader add import com.google.zxing.BinaryBitmap; (or just press ctrl+space after the BinaryBitmap on the line with the compile error and have Flash Builder add the import for you);&lt;/li&gt;&lt;li&gt;In DecoderResult comment out import of mx.controls.List;&lt;/li&gt;&lt;li&gt;In BufferedImageLuminanceSource comment out import mx.controls.Image;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Reading the QR Code &lt;/strong&gt;&lt;br /&gt;Most of the ZXing library usage code to read the QR code was taken verbatim from the &lt;a href="http://codeknow.blogspot.com/2011/04/quick-reader-flex4-xzing-android-air-26.html"&gt;blog post by Michael B&lt;/a&gt; referenced above. The decodeSnapshot method, which is triggered when the user presses the button to capture a QR code, gets the bitmap data from the Camera and passes it to the decodeBitmapData method. The decodeBitmapData method mostly handles passing this bitmap data to the ZXing library for decoding and then displaying the result in the label. The getAllHints method actually tells the ZXing library what kind of QR/barcode we are trying to decode. Theoretically, if you wanted to decode other standard barcode types, you would just add those to the hashtable. ZXing supports many types of barcode scanning and if you simply add the other types, it should just work - but I emphasize should because I didn&amp;rsquo;t test it yet.&lt;/p&gt;&lt;p&gt;&lt;code&gt;public function decodeSnapshot():void&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=&lt;span class="cc_value"&gt;"checking..."&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd=new BitmapData(&lt;span class="cc_numeric"&gt;300&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd.draw(videoDisplay, null, null, null, null, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.cacheAsBitmap=true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.cacheAsBitmapMatrix=new Matrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;decodeBitmapData(bmd,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd.dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.gc();&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public function decodeBitmapData(bmpd:BitmapData, width:int, height:int):void&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var lsource:BufferedImageLuminanceSource=new BufferedImageLuminanceSource(bmpd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var bitmap:BinaryBitmap=new BinaryBitmap(new GlobalHistogramBinarizer(lsource));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ht:HashTable=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ht=this.getAllHints();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var res:Result=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;res=qrReader.decode(bitmap, ht);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch (event:Error) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (res == null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.clear();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=&lt;span class="cc_value"&gt;"nothing decoded"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var parsedResult:ParsedResult=ResultParser.parseResult(res);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=parsedResult.getDisplayResult();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sv.removeChild(videoDisplay);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cameraStarted = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btn.label = &lt;span class="cc_value"&gt;"Start Camera"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;public function getAllHints():HashTable&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ht:HashTable=new HashTable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ht.Add(DecodeHintType.POSSIBLE_FORMATS, BarcodeFormat.QR_CODE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return ht;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Testing Your QR Code Reading &lt;/strong&gt;&lt;br /&gt;For testing, I used this &lt;a href="http://qrcode.kaywa.com/"&gt;QR Code generator&lt;/a&gt; for encode both URL and straight text encoded QR codes. In my tests, not only did the QR code reading work well but it ran pretty fast (and my Nexus One is no powerhouse any longer - if it ever was). One thing I did note though is that it can be pretty picky about where the QR code is placed within the image. It should be centered and should not be so close that it takes up the entire camera. I think this is partly because we are actually passing only a 300x300 bitmap out of our 360x360 camera image to be decoded, so this might be fixable. If that isn&amp;rsquo;t correctable in that manner than I thought it would be wise to add some guides as an overlay to help the user know where to align the QR code.&lt;/p&gt;&lt;p&gt;The other thing I noticed was that when I created a timer event and tested checked the camera periodically using that (as in the linked sample I sourced), I did get some performance issues where the app periodically became unusable (mostly during debugging mode but it seemed indicative of a problem you&amp;rsquo;d want to potentially eliminate).&lt;/p&gt;&lt;p&gt;That&amp;rsquo;s it. Not too complicated eh? For reference, below is the finished Flex Mobile View with all the elements you need to get this sample running. Let me know if this helps you or if you manage to expand upon the example (and feel free to share your code if you do).&lt;/p&gt;&lt;p&gt;P.S. I am not posting an FXP because I am unsure if there are any redistribution restrictions on the license for ZXing.&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;lt;?xml version=&lt;span class="cc_value"&gt;"1.0"&lt;/span&gt; encoding=&lt;span class="cc_value"&gt;"utf-8"&lt;/span&gt;?&amp;gt;&lt;br /&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;s:View xmlns:fx=&lt;span class="cc_value"&gt;"http://ns.adobe.com/mxml/2009"&lt;/span&gt; xmlns:mx=&lt;span class="cc_value"&gt;"library://ns.adobe.com/flex/mx"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:s=&lt;span class="cc_value"&gt;"library://ns.adobe.com/flex/spark"&lt;/span&gt; title=&lt;span class="cc_value"&gt;"HomeView"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fx:Declarations&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- Place non-visual elements (e.g., services, value objects) here --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/fx:Declarations&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fx:Script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.BarcodeFormat;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.BinaryBitmap;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.BufferedImageLuminanceSource;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.DecodeHintType;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.Result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.client.result.ParsedResult;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.client.result.ResultParser;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.common.BitMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.common.ByteMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.common.GlobalHistogramBinarizer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.common.flexdatatypes.HashTable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.qrcode.QRCodeReader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import com.google.zxing.qrcode.detector.Detector;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;import spark.events.ViewNavigatorEvent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected var camera:Camera;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private var videoDisplay:Video=new Video(&lt;span class="cc_numeric"&gt;360&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 360&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private var qrReader:QRCodeReader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private var bmd:BitmapData;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private var cameraStarted:Boolean = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected function button1_clickHandler(event:MouseEvent):void&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!cameraStarted) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Camera.isSupported)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;camera=Camera.getCamera();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;camera.setMode(&lt;span class="cc_numeric"&gt;360&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 360&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 24&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.x = 360;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sv.addChild(videoDisplay);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.attachCamera(camera);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.rotation=90;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;qrReader=new QRCodeReader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btn.label = &lt;span class="cc_value"&gt;"Scan Now"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text = &lt;span class="cc_value"&gt;""&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cameraStarted = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text = &lt;span class="cc_value"&gt;"no camera found"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;decodeSnapshot();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function decodeSnapshot():void&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=&lt;span class="cc_value"&gt;"checking..."&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd=new BitmapData(&lt;span class="cc_numeric"&gt;300&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd.draw(videoDisplay, null, null, null, null, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.cacheAsBitmap=true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.cacheAsBitmapMatrix=new Matrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;decodeBitmapData(bmd,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;,&lt;span class="cc_numeric"&gt; 300&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd.dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bmd=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.gc();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function decodeBitmapData(bmpd:BitmapData, width:int, height:int):void&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var lsource:BufferedImageLuminanceSource=new BufferedImageLuminanceSource(bmpd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var bitmap:BinaryBitmap=new BinaryBitmap(new GlobalHistogramBinarizer(lsource));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ht:HashTable=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ht=this.getAllHints();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var res:Result=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;res=qrReader.decode(bitmap, ht);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch (event:Error) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (res == null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;videoDisplay.clear();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=&lt;span class="cc_value"&gt;"nothing decoded"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var parsedResult:ParsedResult=ResultParser.parseResult(res);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lbl.text=parsedResult.getDisplayResult();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sv.removeChild(videoDisplay);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cameraStarted = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btn.label = &lt;span class="cc_value"&gt;"Start Camera"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public function getAllHints():HashTable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ht:HashTable=new HashTable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ht.Add(DecodeHintType.POSSIBLE_FORMATS, BarcodeFormat.QR_CODE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return ht;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/fx:Script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:VGroup width=&lt;span class="cc_value"&gt;"100%"&lt;/span&gt; horizontalAlign=&lt;span class="cc_value"&gt;"center"&lt;/span&gt; id=&lt;span class="cc_value"&gt;"vg"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:SpriteVisualElement id=&lt;span class="cc_value"&gt;"sv"&lt;/span&gt; width=&lt;span class="cc_value"&gt;"360"&lt;/span&gt; height=&lt;span class="cc_value"&gt;"400"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:Label id=&lt;span class="cc_value"&gt;"lbl"&lt;/span&gt; text=&lt;span class="cc_value"&gt;""&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;s:Button id=&lt;span class="cc_value"&gt;"btn"&lt;/span&gt; label=&lt;span class="cc_value"&gt;"Start Camera"&lt;/span&gt; width=&lt;span class="cc_value"&gt;"220"&lt;/span&gt; height=&lt;span class="cc_value"&gt;"93"&lt;/span&gt; click=&lt;span class="cc_value"&gt;"button1_clickHandler(event)"&lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="cc_normaltag"&gt;&amp;lt;/s:VGroup&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="cc_normaltag"&gt;&amp;lt;/s:View&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="cc_normaltag"&gt;&lt;a href="http://remotesynthesis.com/post.cfm/adding-a-qr-code-reader-in-flex-on-android"&gt;http://remotesynthesis.com/post.cfm/adding-a-qr-code-reader-in-flex-on-android&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2320467.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2012/01/12/2320467.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/09/05/2167515.html</id><title type="text">castle 在mvc3如何注入</title><summary type="text">http://jcreamerlive.com/2011/06/21/dependency-injection-asp-net-mvc-3-castle-windsor/</summary><published>2011-09-05T06:53:00Z</published><updated>2011-09-05T06:53:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/09/05/2167515.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/09/05/2167515.html"/><content type="html">&lt;p&gt;&lt;a href="http://jcreamerlive.com/2011/06/21/dependency-injection-asp-net-mvc-3-castle-windsor/"&gt;http://jcreamerlive.com/2011/06/21/dependency-injection-asp-net-mvc-3-castle-windsor/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2167515.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/09/05/2167515.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/08/15/2139815.html</id><title type="text">Castle Automatic Transaction Management</title><summary type="text">This is a short post on how to set up Castle Automatic Transactions. Many people do not see transactions being implemented as a cross cutting concern a good thing mostly because having to structure your classes around aspects could be considered a bad thing. I am privy to using the AOP method becaus</summary><published>2011-08-15T12:31:00Z</published><updated>2011-08-15T12:31:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/08/15/2139815.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/08/15/2139815.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Georgia,serif; font-size: 16px;"&gt;This is a short post on how to set up Castle Automatic Transactions. Many people do not see transactions being implemented as a cross cutting concern a good thing mostly because having to structure your classes around aspects could be considered a bad thing. I am privy to using the AOP method because it facilitates better unit testing and results in an overall tidy solution. For example, do we want to mock the ITransactionManager every time we want to unit test a service method? Anyway here it is, you decide ...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Georgia,serif; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;http://fir3pho3nixx.blogspot.com/2011/01/this-is-short-post-on-how-to-set-up.html&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2139815.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/08/15/2139815.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/08/08/2130728.html</id><title type="text">python webpy模板介绍</title><summary type="text">http://webpy.org/docs/0.3/templetor.zh-cnhttp://jacy.me/webpy-cookbook-chinese</summary><published>2011-08-08T03:22:00Z</published><updated>2011-08-08T03:22:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/08/08/2130728.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/08/08/2130728.html"/><content type="html">&lt;p&gt;&lt;a href="http://webpy.org/docs/0.3/templetor.zh-cn"&gt;http://webpy.org/docs/0.3/templetor.zh-cn&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;http://jacy.me/webpy-cookbook-chinese&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2130728.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/08/08/2130728.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/08/02/2125532.html</id><title type="text">使用 asp.net mvc和 jQuery UI 控件包</title><summary type="text">http://www.cnblogs.com/shanyou/archive/2011/07/17/2108750.html使用 asp.net mvc和 jQuery UI 控件包</summary><published>2011-08-02T14:02:00Z</published><updated>2011-08-02T14:02:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/08/02/2125532.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/08/02/2125532.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/shanyou/archive/2011/07/17/2108750.html"&gt;http://www.cnblogs.com/shanyou/archive/2011/07/17/2108750.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;使用 asp.net mvc和 jQuery UI 控件包&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2125532.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/08/02/2125532.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/07/01/2095420.html</id><title type="text">webpy demo核心代码</title><summary type="text"># -*-encoding:utf-8 -*-"""Basic Blog using webpy 0.3 """import webimport configimport controllers app= web.application(config.urls,globals())if __name__ =='__main__': app.run() class Index: def GET(self): web.header('Content-Type','text/html;charset=</summary><published>2011-07-01T05:09:00Z</published><updated>2011-07-01T05:09:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/07/01/2095420.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/07/01/2095420.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt; -*-encoding:utf-8 -*-&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"""&lt;/span&gt;&lt;span style="color: #800000;"&gt;Basic Blog using webpy 0.3 &lt;/span&gt;&lt;span style="color: #800000;"&gt;"""&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; web&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; config&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; controllers&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;app&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.application(config.urls,globals())&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;__name__&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;__main__&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;    app.run()&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Index:&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; GET(self):        &lt;br /&gt;        web.header(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;Content-Type&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/html;charset=UTF-8&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        web.setcookie(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;age&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;30&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        &lt;br /&gt;        posts&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;model.get_posts()         &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.index(posts,web.cookies())&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; View:&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; GET(self,id):&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #800000;"&gt;"""&lt;/span&gt;&lt;span style="color: #800000;"&gt; View sing post &lt;/span&gt;&lt;span style="color: #800000;"&gt;"""&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        post&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; model.get_post(int(id))&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;print&lt;/span&gt;&lt;span style="color: #000000;"&gt;  datetime.datetime.strptime(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;2009-9-9 16:56:58&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%Y-%m-%d %H:%M:%S&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;print&lt;/span&gt;&lt;span style="color: #000000;"&gt;  datetime.datetime.now().strftime(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%Y-%m-%d %H:%M:%S&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.view(post)&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; New:&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;vtitle = web.form.regex(r".{3,20}$", '标题长度3到20位字符') &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    form&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;web.form.Form(&lt;br /&gt;        web.form.Textbox(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,web.form.notnull,&lt;br /&gt;                         size&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;30&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;br /&gt;                         description&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;u&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;标题&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;        web.form.Textarea(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;content&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,web.form.notnull,&lt;br /&gt;                          rows&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;30&lt;/span&gt;&lt;span style="color: #000000;"&gt;,cols&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;80&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                          description&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;u&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;内容&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;        web.form.Button(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;submit&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,type&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;submit&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,html&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;u&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;提交&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;        )&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; GET(self):&lt;br /&gt;        form&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; self.form()&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.new(form)&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; POST(self):&lt;br /&gt;        form &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; self.form()&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;not&lt;/span&gt;&lt;span style="color: #000000;"&gt; form.validates():&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.new(form)&lt;br /&gt;        model.new_post(form.d.title,form.d.content)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;raise&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.seeother(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Delete:&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; POST(self,id):&lt;br /&gt;            model.del_post(int(id))&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;raise&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.seeother(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Edit:&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; GET(self,id):&lt;br /&gt;        post &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; model.get_post(int(id))&lt;br /&gt;        form&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; New.form()&lt;br /&gt;        form.fill(post)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.edit(post,form)&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; POST(self,id):&lt;br /&gt;        form&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;New.form()&lt;br /&gt;        post &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; model.get_post(int(id))&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;not&lt;/span&gt;&lt;span style="color: #000000;"&gt; form.validates():&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; render.edit(post,form)&lt;br /&gt;        model.update_post(int(id),form.d.title,form.d.content)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;raise&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.seeother(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; notfound():   &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.notfound(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Sorry, the page you were looking for was not found.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;model.py&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff;"&gt;import&lt;/span&gt;&lt;span style="color: #000000;"&gt; web,datetime&lt;br /&gt;db&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.database(dbn&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;sqlite&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,db&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;blog.db&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; get_posts():&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; db.select(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;entries&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,order&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;id desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; get_post(id):&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; db.select(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;entries&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,where&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;id=$id&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,vars&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;locals())[0]     &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;except&lt;/span&gt;&lt;span style="color: #000000;"&gt; IndexError:&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; None&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; new_post(title,text):&lt;br /&gt;    &lt;br /&gt;    db.insert(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;entries&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,title&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;title,content&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;text,post_on&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;datetime.datetime.utcnow())&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; del_post(id):&lt;br /&gt;    db.delete(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;entries&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,where&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;id=$id&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,vars&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;locals())&lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;def&lt;/span&gt;&lt;span style="color: #000000;"&gt; update_post(id,title,text):&lt;br /&gt;    db.update(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;entries&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;,where&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;id=$id&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,vars&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;locals(),&lt;br /&gt;              title&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;title,content&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;text)&lt;br /&gt;        &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2095420.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/07/01/2095420.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/04/20/2022236.html</id><title type="text">Howto create a System.Linq.Expressions.Expression for Like</title><summary type="text">http://stackoverflow.com/questions/956743/howto-create-a-system-linq-expressions-expression-for-likehttp://trentacular.com/2010/08/linq-to-entities-wild-card-like-extension-method/http://www.albahari.com/nutshell/predicatebuilder.aspx6 down vote accepted Something like:static IEnumerable&lt;T&gt; Wh</summary><published>2011-04-20T06:03:00Z</published><updated>2011-04-20T06:03:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/04/20/2022236.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/04/20/2022236.html"/><content type="html">&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/956743/howto-create-a-system-linq-expressions-expression-for-like"&gt;http://stackoverflow.com/questions/956743/howto-create-a-system-linq-expressions-expression-for-like&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://trentacular.com/2010/08/linq-to-entities-wild-card-like-extension-method/"&gt;http://trentacular.com/2010/08/linq-to-entities-wild-card-like-extension-method/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.albahari.com/nutshell/predicatebuilder.aspx"&gt;http://www.albahari.com/nutshell/predicatebuilder.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="votecell"&gt;&lt;div class="vote"&gt;&lt;a class="vote-up-off" title="This answer is useful (click again to undo)" jquery151002290119990062489="3"&gt;&lt;/a&gt;&lt;span class="vote-count-post"&gt;6&lt;/span&gt; &lt;a class="vote-down-off" title="This answer is not useful (click again to undo)" jquery151002290119990062489="4"&gt;down vote&lt;/a&gt; &lt;span class="vote-accepted-on" title="The question owner accepted this as the best answer Jun 8 '09 at 6:46"&gt;accepted&lt;/span&gt; &lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div class="post-text"&gt;&lt;p&gt;Something like:&lt;/p&gt;&lt;code&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt;T&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;WhereLike&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt;T&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;this&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt;T&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; data&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; propertyOrFieldName&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; value&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; param &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Parameter&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;T&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;&lt;font color="#800000"&gt;"x"&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; body &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Call&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Program&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;).&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;GetMethod&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;&lt;font color="#800000"&gt;"Like"&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Static&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;|&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;NonPublic&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;|&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;PropertyOrField&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;param&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; propertyOrFieldName&lt;/span&gt;&lt;span class="pun"&gt;),&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Constant&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;value&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;)));&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;var&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; lambda &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Lambda&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Func&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt;T&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; bool&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&amp;gt;(&lt;/span&gt;&lt;span class="pln"&gt;body&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; param&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; data&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Where&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;lambda&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Compile&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;());&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; bool &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Like&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; a&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;string&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; b&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; a&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Contains&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;b&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="com"&gt;&lt;font color="#808080"&gt;// just for illustration&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In terms of a &lt;code&gt;&lt;font style="background-color: #eeeeee" face="Consolas"&gt;Func&amp;lt;Expression,Expression,Expression&amp;gt;&lt;/font&gt;&lt;/code&gt;:&lt;/p&gt;&lt;code&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;static&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Like&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; lhs&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; rhs&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;return&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Expression&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Call&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;&lt;font color="#00008b"&gt;typeof&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Program&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;).&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;GetMethod&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;&lt;font color="#800000"&gt;"Like"&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Static&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;|&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;NonPublic&lt;/font&gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;|&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;BindingFlags&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;&lt;font color="#2b91af"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;lhs&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt;rhs&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Collections.Generic&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Data&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Data.Objects&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Data.Objects.DataClasses&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Linq&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Linq.Expressions&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;using&lt;/span&gt; &lt;span style="color: #008080"&gt;System.Reflection&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;    &lt;span style="color: #0600ff; font-weight: bold"&gt;public&lt;/span&gt; &lt;span style="color: #0600ff; font-weight: bold"&gt;static&lt;/span&gt; &lt;span style="color: #6666cc; font-weight: bold"&gt;class&lt;/span&gt; LinqExtensions&lt;br/&gt;    &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0600ff; font-weight: bold"&gt;public&lt;/span&gt; &lt;span style="color: #0600ff; font-weight: bold"&gt;static&lt;/span&gt; IQueryable&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TSource&lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt; WhereLike&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TSource&lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;this&lt;/span&gt; IQueryable&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TSource&lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt; source,&lt;br/&gt;            Expression&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;Func&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TSource, &lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;gt;&amp;gt;&lt;/span&gt; valueSelector,&lt;br/&gt;            &lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt; value,&lt;br/&gt;            &lt;span style="color: #6666cc; font-weight: bold"&gt;char&lt;/span&gt; wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;return&lt;/span&gt; source&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0600ff; font-weight: bold"&gt;Where&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;BuildLikeExpression&lt;span style="color: #008000"&gt;(&lt;/span&gt;valueSelector, value, wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;        &lt;span style="color: #0600ff; font-weight: bold"&gt;public&lt;/span&gt; &lt;span style="color: #0600ff; font-weight: bold"&gt;static&lt;/span&gt; Expression&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;Func&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TElement, &lt;span style="color: #6666cc; font-weight: bold"&gt;bool&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;gt;&amp;gt;&lt;/span&gt; BuildLikeExpression&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TElement&lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;br/&gt;            Expression&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;Func&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TElement, &lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;gt;&amp;gt;&lt;/span&gt; valueSelector,&lt;br/&gt;            &lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt; value,&lt;br/&gt;            &lt;span style="color: #6666cc; font-weight: bold"&gt;char&lt;/span&gt; wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #008000"&gt;(&lt;/span&gt;valueSelector &lt;span style="color: #008000"&gt;==&lt;/span&gt; &lt;span style="color: #0600ff; font-weight: bold"&gt;null&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #0600ff; font-weight: bold"&gt;throw&lt;/span&gt; &lt;span style="color: #008000"&gt;new&lt;/span&gt; ArgumentNullException&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;span style="color: #666666"&gt;"valueSelector"&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            var method &lt;span style="color: #008000"&gt;=&lt;/span&gt; GetLikeMethod&lt;span style="color: #008000"&gt;(&lt;/span&gt;value, wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            value &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Trim&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            var body &lt;span style="color: #008000"&gt;=&lt;/span&gt; Expression&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Call&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;valueSelector&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Body&lt;/span&gt;, method, Expression&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Constant&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;value&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            var parameter &lt;span style="color: #008000"&gt;=&lt;/span&gt; valueSelector&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Parameters&lt;/span&gt;&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Single&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;return&lt;/span&gt; Expression&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Lambda&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;Func&lt;span style="color: #008000"&gt;&amp;lt;&lt;/span&gt;TElement, &lt;span style="color: #6666cc; font-weight: bold"&gt;bool&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;body, parameter&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;        &lt;span style="color: #0600ff; font-weight: bold"&gt;private&lt;/span&gt; &lt;span style="color: #0600ff; font-weight: bold"&gt;static&lt;/span&gt; MethodInfo GetLikeMethod&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt; value, &lt;span style="color: #6666cc; font-weight: bold"&gt;char&lt;/span&gt; wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;            var methodName &lt;span style="color: #008000"&gt;=&lt;/span&gt; &lt;span style="color: #666666"&gt;"Contains"&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            var textLength &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Length&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            value &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;TrimEnd&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #008000"&gt;(&lt;/span&gt;textLength &lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Length&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;                methodName &lt;span style="color: #008000"&gt;=&lt;/span&gt; &lt;span style="color: #666666"&gt;"StartsWith"&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;                textLength &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Length&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            value &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;TrimStart&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;wildcard&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #008000"&gt;(&lt;/span&gt;textLength &lt;span style="color: #008000"&gt;&amp;gt;&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Length&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;br/&gt;                methodName &lt;span style="color: #008000"&gt;=&lt;/span&gt; &lt;span style="color: #008000"&gt;(&lt;/span&gt;methodName &lt;span style="color: #008000"&gt;==&lt;/span&gt; &lt;span style="color: #666666"&gt;"StartsWith"&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt; &lt;span style="color: #008000"&gt;?&lt;/span&gt; &lt;span style="color: #666666"&gt;"Contains"&lt;/span&gt; &lt;span style="color: #008000"&gt;:&lt;/span&gt; &lt;span style="color: #666666"&gt;"EndsWith"&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;                textLength &lt;span style="color: #008000"&gt;=&lt;/span&gt; value&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Length&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;            var stringType &lt;span style="color: #008000"&gt;=&lt;/span&gt; &lt;span style="color: #008000"&gt;typeof&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;&lt;span style="color: #6666cc; font-weight: bold"&gt;string&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0600ff; font-weight: bold"&gt;return&lt;/span&gt; stringType&lt;span style="color: #008000"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff"&gt;GetMethod&lt;/span&gt;&lt;span style="color: #008000"&gt;(&lt;/span&gt;methodName, &lt;span style="color: #008000"&gt;new&lt;/span&gt; Type&lt;span style="color: #008000"&gt;[&lt;/span&gt;&lt;span style="color: #008000"&gt;]&lt;/span&gt; &lt;span style="color: #008000"&gt;{&lt;/span&gt; stringType &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;span style="color: #008000"&gt;)&lt;/span&gt;&lt;span style="color: #008000"&gt;;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2022236.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/04/20/2022236.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/genson/archive/2011/03/31/2001246.html</id><title type="text">实体框架继承关系。很好</title><summary type="text">http://www.cnblogs.com/Barton131420/archive/2009/09/04/1560237.htmlhttp://weblogs.asp.net/zeeshanhirani/archive/2008/08/16/single-table-inheritance-in-entity-framework.aspxtruning json into a expand objecthttp://coderjournal.com/2010/07/turning-json-into-a-expandoobject/</summary><published>2011-03-31T08:47:00Z</published><updated>2011-03-31T08:47:00Z</updated><author><name>永不言败</name><uri>http://www.cnblogs.com/genson/</uri></author><link rel="alternate" href="http://www.cnblogs.com/genson/archive/2011/03/31/2001246.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/genson/archive/2011/03/31/2001246.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/Barton131420/archive/2009/09/04/1560237.html"&gt;http://www.cnblogs.com/Barton131420/archive/2009/09/04/1560237.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net/zeeshanhirani/archive/2008/08/16/single-table-inheritance-in-entity-framework.aspx"&gt;http://weblogs.asp.net/zeeshanhirani/archive/2008/08/16/single-table-inheritance-in-entity-framework.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;truning &amp;nbsp;json into a expand object&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://coderjournal.com/2010/07/turning-json-into-a-expandoobject/"&gt;http://coderjournal.com/2010/07/turning-json-into-a-expandoobject/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/genson/aggbug/2001246.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/genson/archive/2011/03/31/2001246.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
