public override void GetData(object inObject, Stream outStream)
        {
            try
            {
                // DbSet<T> -> DataSet に変換
                var items     = inObject as IEnumerable;
                var converter = new IEnumerableToDataSetConverter();
                var ds        = converter.Convert(items);

                // シリアライズして渡す
                var xmlString = string.Empty;
                using (var writer = new StringWriter())
                {
                    ds.WriteXml(writer, XmlWriteMode.WriteSchema);
                    xmlString = writer.ToString();
                }

                var writer2 = new StreamWriter(outStream);
                writer2.Write(xmlString);
                writer2.Flush();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.ToString());
            }
        }
Esempio n. 2
0
        public override void GetData(object inObject, Stream outStream)
        {
            // DbContext -> DataSet に変換
            var t = inObject.GetType();

            // DbContext クラスに登録した各DBテーブルメンバー(DbSet<TableClass>)を取得(=その他管理系のメンバーは除外)
            // DbSet<> は IEnumerable を継承している
            var members = t.GetProperties()
                          .Where(x => typeof(IEnumerable).IsAssignableFrom(x.PropertyType))
                          .Select(x => new { Name = x.Name, Items = x.GetValue(inObject, null) as IEnumerable });

            var converter = new IEnumerableToDataSetConverter();
            var ds        = new DataSet(t.Name);

            foreach (var member in members)
            {
                var table = converter.ToDataTable(member.Items);
                table.TableName = member.Name;
                ds.Tables.Add(table);
            }

            // シリアライズして渡す
            var xmlString = string.Empty;

            using (var writer = new StringWriter())
            {
                ds.WriteXml(writer, XmlWriteMode.WriteSchema);
                xmlString = writer.ToString();
            }

            var writer2 = new StreamWriter(outStream);

            writer2.Write(xmlString);
            writer2.Flush();
        }
Esempio n. 3
0
        public override void GetData(object inObject, Stream outStream)
        {
            // DbSet -> DataSet に変換
            var items     = inObject as IEnumerable;
            var converter = new IEnumerableToDataSetConverter();
            var ds        = converter.Convert(items);

            // シリアライズして渡す
            var xmlString = string.Empty;

            using (var writer = new StringWriter())
            {
                ds.WriteXml(writer, XmlWriteMode.WriteSchema);
                xmlString = writer.ToString();
            }

            var writer2 = new StreamWriter(outStream);

            writer2.Write(xmlString);
            writer2.Flush();
        }