我有一个到SSRS服务器的web服务,我从该服务器下载报告并将其用c#序列化为XML,然后保存为.rdl
文件。
我也有可能得到所有的Data Source
,用
ReportingService2005 rs = new ReportingService2005();
DataSource dataSource = new DataSource();
DataSourceDefinition dataSourceDefinition = rs.GetDataSourceContents(path);
dataSource.Item = dataSourceDefinition;
我想保存data source
对象作为.ds
或.rds
文件,但我不知道如何。是否有一种方法可以使用XML序列化或其他更简单的方法?
我也遇到了同样的问题,我使用XML序列化来序列化DataSource对象,下面是代码片段:
DataSource ds = new DataSource();
DataSourceDefinition dsDefinition = rs.GetDataSourceContents(item.Path);
ds.Item = dsDefinition;
sOutFile = string.Format(@"{0}{1}.rds", sOutputDir, item.Name);
if (File.Exists(sOutFile))
File.Delete(sOutFile);
SerializeObject(sOutFile, ds); // serializes the dataSource object and save it
这里是SerializeObject方法,它序列化然后以XML格式保存文件:
private void SerializeObject(string filename, DataSource d)
{
try
{
XmlSerializer serializer =
new XmlSerializer(typeof(DataSource));
// Create an XmlTextWriter using a FileStream.
Stream fs = new FileStream(filename, FileMode.Create);
XmlWriter writer =
new XmlTextWriter(fs, Encoding.Unicode);
// Serialize using the XmlTextWriter.
serializer.Serialize(writer, d);
writer.Close();
}
catch (Exception e) { MessageBox.Show("inside serializeObject Method "+e.Message); }
}
我希望这有助于如果有人被困在这个问题
正如kyzen在评论中建议的那样,我使用了一些自定义代码和这篇文章的组合,列出了SQL Server 2008 R2中的所有数据源及其依赖关系(报告,项目等),以获得我想要的结果