报告服务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。
如果所有的SSRS实例都是相同的版本,您应该能够在代理对象上设置URL属性:
Server1WebService server.url = new uri ("http://server/ReportServer_InstanceName/ReportService2005.asmx?wsdl"));
如果你有多个版本要处理,你可能需要提供某种类型的工厂对象,可以正确地实例化正确的版本。
希望能有所帮助