呈现扩展插件从与实际数据相结合的报表定义中获取结果,并将得到的数据呈现为某种可用的格式。 组合的数据和格式的转换是通过一个实现 IRenderingExtension 的公共语言运行时 (CLR) 类完成的。 该类将对象模型转换为可由查看器、打印机或其他输出目标使用的输出格式。
IRenderingExtension 具有三个必须进行编码的方法:
- Render - 呈现报表。 
- RenderStream - 呈现报表中特定的流。 
- GetRenderingResource - 获取报表所需的其他信息,例如图标。 
下列各节更为详细地讨论这些方法。
Render 方法
Render 方法包含表示以下对象的参数:
- 要呈现的 report 本身。 此对象包含报表的属性、数据和布局信息。 report 是报表对象模型树的根。 
- ServerParameters,包含字符串字典对象以及用于报表服务器的参数(如果有)。 
- 包含设备设置的 deviceInfo 参数。 有关详细信息,请参阅 将设备信息设置传递到呈现扩展插件。 
- 包含字典NameValueCollection对象的 clientCapabilities 参数,其中包含要呈现到的客户端的相关信息。 
- RenderProperties 参数,其中包含有关呈现结果的信息。 
- createAndRegisterStream 是一个委托函数,可以调用它来获取要呈现到的流。 
deviceInfo 参数
deviceInfo 参数包含呈现参数,而不包含报表参数。 这些呈现参数将传递给呈现扩展插件。 报表服务器会将 deviceInfo 值转换为一个 NameValueCollection 对象。 deviceInfo 参数中的项被视为区分大小写的值。 如果作为 URL 访问的结果提出呈现请求,则格式为 rc:key=value 的 URL 参数将转换为 deviceInfo 字段对象中的键/值对。 浏览器检测代码还在 clientCapabilities 字典中提供了以下各项:EcmaScriptVersion、JavaScript、MajorVersion、MinorVersion、Win32、Type 和 AcceptLanguage。 呈现扩展插件忽略它无法理解的 deviceInfo 参数中的任何名称/值对。 以下代码示例显示用于检索图标的示例 GetRenderingResource 方法:
public void GetRenderingResource (CreateStream createStreamCallback, NameValueCollection deviceInfo)  
{  
    string[] iconTagValues = deviceInfo.GetValues("Icon");  
    if ((iconTagValues != null) && (iconTagValues.Length > 0) )  
    {  
        // Create a stream to output to.  
        Stream outputStream = createStreamCallback(m_iconResourceName, "gif", null, "image/gif", false);  
        // Get the GIF image for one of the buttons on the toolbar  
        Image requiredImage = (Image) m_resourcemanager.GetObject(m_iconResourceName  
        // Write the image to the output stream  
        requiredImage.Save(outputStream, requiredImage.RawFormat);  
    }  
    return;  
}  
RenderStream 方法
RenderStream 方法呈现报表中的特定流。 所有流都是在初始 Render 调用期间创建的,但流最初不会返回到客户端。 此方法用于辅助流,例如 HTML 呈现中的图像,或多页呈现扩展插件的其他页面,如 Image/EMF。
GetRenderingResource 方法
GetRenderingResource 方法检索信息而不执行报表的完整呈现。 有时,报表需要不需要呈现报表本身的信息。 例如,如果需要与呈现扩展插件关联的图标,则可以使用包含单个标记 <Icon> 的 deviceInfo 参数。 在此类情况下,可以使用 GetRenderingResource 方法。