报告服务Web服务,c# . net代码重用

本文关键字:服务 代码 net Web 报告 | 更新日期: 2023-09-27 18:19:01

我正在为一组报表服务服务器构建自定义前端。我正在添加ReportingServices2005 web引用到我的项目使用;

http://server/ReportServer_InstanceName/ReportService2005.asmx?wsdl

目前我的方法是为每个服务器添加这个参考,但是我正在努力解决代码重用方面的问题。报告服务类是不同的命名空间。

我想有一个方法如下;

public string ListReports(Server1WebService.ReportingService2005 service) {
        service.Credentials = System.Net.CredentialCache.DefaultCredentials;
        service.Server1WebService.CatalogItem[] children = service.ListChildren("/", true);
        string list = String.Empty;
        foreach (Server1WebService.CatalogItem i in children) {
            if (!i.Hidden)
                list += i.Name + "</br>";
        }
        return list;
}

要使这个方法可重用,我需要知道如何重构它,以便无论名称空间如何,都可以传递ReportingService2005类的任何实例。目前,我必须为ReportingService2005和CatalogItem的所有引用指定Server1WebService。

报告服务Web服务,c# . net代码重用

如果所有的SSRS实例都是相同的版本,您应该能够在代理对象上设置URL属性:

Server1WebService server.url = new uri ("http://server/ReportServer_InstanceName/ReportService2005.asmx?wsdl"));

如果你有多个版本要处理,你可能需要提供某种类型的工厂对象,可以正确地实例化正确的版本。

希望能有所帮助