Collection Contents 上一页 下一页 PDF

QAnywhere 用户指南

教程:QAnywhere 示例应用程序

第 5 课:浏览 TestMessage 客户端源代码


背景 

本节教程引导您简要地浏览 TestMessage 客户端应用程序的源代码。

大量代码实现了可用于发送、接收和查看消息的 Windows 界面。不过,教程的这一部分侧重于提供给 QAnywhere 的这部分代码。

您可以在 SQL Anywhere Studio 安装目录的 Samples\QAnywhere 子目录中找到 TestMessage 源代码。

提供了多个版本的 TestMessage 源代码。以下版本用于 Windows 2000 和 Windows XP:

下面的版本用于 Pocket PC:

必需的软件 

Visual Studio .NET 2003 需要打开解决方案文件并构建 .NET Framework 项目和 .NET Compact Framework 项目。

浏览 C# 或 Visual Basic .NET 源代码 

本节将引导您浏览 C# 源代码。这两个版本的结构很类似。

此教程不是让您查看应用程序中的每一行,而是挑出对理解 QAnywhere 应用程序特别有用的某些行。使用 C# 版本来演示特定的行。

  1. 打开您感兴趣的 TestMessage 项目版本。

    双击解决方案文件以在 Visual Studio .NET 中打开项目。例如,Samples\QAnywhere\Desktop\.NET\CS\TestMessage\TestMessage.sln 是一个解决方案文件。有多个解决方案文件用在不同的环境中。

  2. 确保显示 [Solution Explorer]。

    您可以从 [View] 菜单中打开 [Solution Explorer]。

  3. 检查 [Source Files] 文件夹。

    有两个文件特别重要。MessageList 文件 (MessageList.cs) 接收消息并允许您查看消息。NewMessage 文件 (NewMessage.cs) 允许您构造和发送消息。

  4. 从 [Solution Explorer] 中打开 MessageList 文件。

  5. 检查所包含的命名空间。

    每个 QAnywhere 应用程序都需要 iAnywhere.QAnywhere.Client 命名空间。定义此命名空间的程序集以 DLL iAnywhere.QAnywhere.Client.dll 的形式提供,位于 SQL Anywhere Studio 安装目录的 cewin32 子目录中。在您自己的项目中,必须以引用的形式添加此 DLL。使用以下行在每个文件的顶部包含该命名空间:

    using iAnywhere.QAnywhere.Client;
  6. 检查 MessageList_Load 方法。

    此方法执行 QAnywhere 应用程序共有的初始化任务:

  7. 在同一文件中检查 startReceiver 方法。

    此步骤将消息监听器指派给队列。当您为队列设置一个消息监听器时,QAnywhere Manager 将把到达该队列的消息传递给该监听器。只能为一个给定的队列设置一个监听器。设置一个空监听器将清除该队列的所有监听器。

    使用 MessageListener 将以异步方式接收信息。您也可以同步接收信息,也就是说,应用程序显式地去队列中查找消息(可能是响应一个用户操作,如单击 [刷新] 按钮),而不是在消息出现时获得通知。

    此方法完成初始化任务:

  8. 在同一文件中检查 addMessage 函数。

    只要应用程序接收到消息,就会调用此方法。它将获取消息的属性,例如 ReplyToAddress、PreferredName 和发送时间(时间戳),并在 TestMessage 用户界面中显示此信息。以下行用于将进来的消息转换为 QATestMessage 对象并获取消息的 ReplyToAddress:

    text_msg = ( QATextMessage )msg;
    from = text_msg.ReplyToAddress;

    这里简要分析了在 MessageList 文件中执行的一些主要任务。

  9. 从 [Solution Explorer] 中打开 NewMessage 文件。

  10. 检查 sendMessage 函数。

    此函数获取在 [New Message] 对话框中输入的信息并构造一个 QATextMessage 对象。然后,QAManager 将该消息置于要发送的队列中。

    下面的行用于创建一个 QATextMessage 对象并设置它的 ReplyToAddress 属性:

    qa_manager = MessageList.GetQAManager();
    msg = qa_manager.CreateTextMessage();
    msg.ReplyToAddress = Options.GetReceiveQueueName();

    下面的行用于将消息置于要发送的队列中。变量 to 为目标地址,将作为函数的参数提供。

    to = BuildQueue( to );
    qa_manager.PutMessage( to, msg );
进一步阅读 

有关详细信息,请参见:


Collection Contents 上一页 下一页 PDF