我有一个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序列化来实现这一点,还是有更简单的方法?
答案 0 :(得分:3)
我有同样的问题,我使用XML序列化来序列化DataSource对象,这里是代码snipet:
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); }
}
我希望如果有人遇到这个问题,这会有所帮助
答案 1 :(得分:0)
正如kyzen在评论中所说,我使用了一些自定义代码和来自SO Listing all Data Sources and their Dependencies (reports, items, etc) in SQL Server 2008 R2的帖子来获得我想要的结果。