Implementing the IDeliveryExtension Interface for a Delivery Extension
Your delivery extension class is used to deliver report notifications to users based on the contents of the notifications. The delivery extension class also provides infrastructure for validating user settings that are passed to the delivery extension. In addition, your delivery extension class should contain specific properties that clients can use to gain information about the name of the extension, the settings that the extension supports, and the rendering formats that are available to the delivery extension.
To create a delivery extension class, implement IDeliveryExtension and IExtension. The IDeliveryExtension interface enables your delivery extension to deliver report notifications using the Deliver method and to validate incoming extension settings using the ValidateUserData method. The IExtension interface enables your delivery extension to implement a localized extension name and to process extension-specific configuration information stored in the SQL Server configuration file. By implementing IExtension, your delivery extension contains the LocalizedName property. It is strongly recommended that SSRS delivery extensions support the LocalizedName property, so that users encounter a familiar name for the extension in a user interface, such as Report Manager.
Your delivery extension must also implement the ExtensionSettings property of the IDeliveryExtension interface. The report server uses the value returned by the ExtensionSettings property to evaluate the settings that a delivery extension requires. Clients that interact with delivery extensions use the GetExtensionSettings method of the Report Server Web service to return a list of settings for the delivery extension.
You can also use your delivery extension class to retrieve and process custom configuration data stored in the RSReportServer.config file. For more information about processing custom configuration data, see the SetConfiguration method.
For a sample IDeliveryExtension class implementation, see Printer Delivery Extension Sample.