如果你在使用这些函数的遇到说某某函数,类等找不到,那很可能是没有包含对应的此处的引用。
那么则请自行参考crifanLib.cs
中的using部分,添加对应的引用。
经过后来的版本升级,此时的crifanLib.cs
中,已经包含了很多宏定义。
这些宏定义,主要用于,打开,关闭,某些库函数的,以便实现:
当你不想要使用某些函数,以及其会依赖到相关的库,的时候,则可以直接注释掉对应的宏,以实现此目的。
举例,比如,你此处,不想用.NET是3.5或更高的版本,也不想要使用JSON相关的函数,则可以在crifanLib.cs
中,把JSON的宏注释掉,即:
//#define USE_JSON
如此,就不会使用到JSON相关的函数了:此刻的效果,主要是:
#if USE_JSON using System.Web.Script.Serialization; // json lib, need: .NET 3.5+ #endif
此处,就把crifanLib.cs
目前所有依赖的库,即所有的using,都贴出来,供需要的人,自己添加自己所需要的:
//comment out following macros if not use them #define USE_GETURLRESPONSE_BW //for getUrlResponse use backgroundworker version //#define USE_HTML_PARSER_SGML //need SgmlReaderDll.dll //#define USE_HTML_PARSER_HTMLAGILITYPACK //need HtmlAgilityPack.dll //#define USE_DATAGRIDVIEW //#define USE_JSON using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Web; // for server using System.Net; // for client using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Drawing; using System.Windows.Forms; using System.Reflection; using System.Diagnostics; using System.ComponentModel; using System.Globalization; #if USE_JSON using System.Web.Script.Serialization; // json lib, need: .NET 3.5+ #endif #if USE_HTML_PARSER_SGML using Sgml; using System.Xml; #endif #if USE_HTML_PARSER_HTMLAGILITYPACK using HtmlAgilityPack; #endif #if USE_DATAGRIDVIEW using Excel = Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Excel; #endif
如上所述,crifanLib.cs
中包含了一些宏,用于控制一些相关的功能,是否使用。
此处,就对于这些宏,进行详细的解释:
默认关闭此宏。
其背景是:
原先的getUrlResponse,是用于获得URL的响应,属于耗时操作,其在C#中使用时,一般都是出于默认的UI进程中。
导致结果是:当调用到getUrlResponse(以及相关的getUrlRespHtml等)函数时,UI失去响应,导致用户体验很不好。
所以后来又实现了一个BackgroundWorker版本的getUrlResponse
使得,当调用getUrlResponse,UI也可以得到响应了。
所以,如果你想要用BackgroundWorker版本的getUrlResponse,就可以打开此宏:
#define USE_GETURLRESPONSE_BW //for getUrlResponse use backgroundworker version
如果没此需求,就关闭此宏:
//#define USE_GETURLRESPONSE_BW //for getUrlResponse use backgroundworker version
之前解析HTML,最初用的就是这个sgml库:SgmlReaderDll.dll
但是明显不是很好用。
后来发现了另外一个库:HtmlAgilityPack.dll,后,发现比较好用,就更多的时候,都用HtmlAgilityPack.dll这个库了。
所以,推荐做法:
当涉及到HTMl解析的时候,推荐用HtmlAgilityPack,不太推荐用Sgml
所以,一般设置为:
//#define USE_HTML_PARSER_SGML //need SgmlReaderDll.dll #define USE_HTML_PARSER_HTMLAGILITYPACK //need HtmlAgilityPack.dll
即可。
当然,如果你两个库都使用,也是可以的。
DataGridView是表格控件。
之前的很多折腾:
整理出了这些函数:
所以,当你需要的时候,可以打开此宏:
#define USE_DATAGRIDVIEW
去使用相关函数。