在进行文本编辑和校对的过程中,拼写检查和语法检查是两个非常重要的环节。Windows Live Writer内置了拼写检查功能,但是语法检查则需要额外的插件支持。幸运的是,有一个名为“After the Deadline”的网站提供了一个基于Web的API,能够免费用于非商业用途的语法和拼写检查。该网站还提供了多种语言的封装库,但遗憾的是,并没有直接支持C#或任何.NET语言。不过,现在有了一种解决方案。
将向介绍一个C#的封装库,它使得任何.NET应用程序都可以轻松地使用“After the Deadline”的API。已经将这个C#封装库上传到了CodePlex,并且将尝试将其发布到官方的AtD网站上。
这个封装库提供了以下功能:
上述功能通过以下简单的接口暴露:
/// <summary>
/// Initializes the After the Deadline service
/// </summary>
/// <param name="applicationKey">The application key.</param>
/// <param name="userKey">The user key.</param>
public static void InitService(string applicationKey, string userKey);
/// <summary>
/// Checks a document and returns errors and suggestions
/// </summary>
/// <param name="data">The data to check</param>
/// <returns>Enumerable of error objects</returns>
public static IEnumerable<Error> CheckDocument(string data);
/// <summary>
/// Checks a document (sans spelling) returns errors and suggestions
/// </summary>
/// <param name="data">The data to check</param>
/// <returns>Enumerable of error objects</returns>
public static IEnumerable<Error> CheckGrammar(string data);
/// <summary>
/// Returns HTML describing an error
/// </summary>
/// <param name="text">The text that triggered an error</param>
/// <returns>The HTML response</returns>
public static string Info(string text);
/// <summary>
/// Returns statistics about the writing quality of a document
/// </summary>
/// <param name="data">The data to check</param>
public static IEnumerable<Metric> Stats(string data);
InitService方法用于设置应用程序密钥和用户密钥,需要根据提供的指南生成这些密钥。最有用的方法当属CheckDocument,它接受要检查的文本并返回错误对象的集合。由于这仅仅是对原始REST API的封装,强烈建议查看原始API文档以获取更多关于参数和返回值的详细信息。
“After the Deadline”网站提供的API基于REST和XML响应。简单地使用了WebClient的DownloadString方法来访问REST接口,然后使用LINQ to XML解析XML。简单且易于实现。