チェンジセット 1504 (default)
- 日時:
- 2021/05/24 15:38:30 (3年前)
- 場所:
- framework/trunk
- ファイル:
-
- 1個の追加
- 5個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/CoreLibrary/Sources/Csv/CsvBeanWriterSettings.cs
r1368 r1504 22 22 namespace FCSoft.SilverFrost.Framework.Csv 23 23 { 24 using System.Collections.Generic; 24 25 using System.Diagnostics; 25 26 … … 42 43 [DebuggerBrowsable(DebuggerBrowsableState.Never)] 43 44 private CsvColumnLabelResolver columnLabelResolver; 45 46 /// <summary> 47 /// 出力する任意カラムを識別するラベルの一覧。 48 /// </summary> 49 [DebuggerBrowsable(DebuggerBrowsableState.Never)] 50 private IList<string> optionColumnLabels; 44 51 45 52 … … 93 100 } 94 101 } 102 103 /// <summary> 104 /// 出力する任意カラムを識別するラベルの一覧を取得または設定します。 105 /// </summary> 106 /// <value> 107 /// 出力する任意カラムを識別するラベルの一覧。 108 /// 既定値は <see langword="null"/> で、任意カラムは出力されません。 109 /// </value> 110 /// <remarks> 111 /// <para> 112 /// この一覧の順番で、任意カラムが出力されます。 113 /// 各データ行は、この値をキーとしてディクショナリから値を取り出します。 114 /// </para> 115 /// <para> 116 /// <see cref="ColumnLabelResolver"/> プロパティが設定されている場合、 117 /// CSV ヘッダーに出力される値は、このリストの各値を元に 118 /// <see cref="ColumnLabelResolver"/> が呼び出され、その結果が出力されます。 119 /// </para> 120 /// </remarks> 121 public IList<string> OptionColumnLabels 122 { 123 get 124 { 125 return optionColumnLabels; 126 } 127 128 set 129 { 130 optionColumnLabels = value; 131 } 132 } 95 133 } 96 134 } -
framework/trunk/CoreLibrary/Sources/Csv/CsvColumnInfo.cs
r1424 r1504 25 25 using System; 26 26 using System.Collections.Generic; 27 using System.Collections.Specialized; 27 28 using System.ComponentModel; 28 29 using System.Diagnostics; … … 122 123 && (typeConverter == null || !typeConverter.CanConvertFrom(typeof(string)))) 123 124 { 125 // IOrderedDictionary を実装している場合 126 if (typeof(IOrderedDictionary).IsAssignableFrom(instanceType)) 127 { 128 129 } 130 124 131 // メンバの型が配列の場合 125 132 if (instanceType.IsArray) -
framework/trunk/CoreTest/CoreTest.csproj
r1502 r1504 48 48 </ItemGroup> 49 49 <ItemGroup> 50 <Compile Include="Sources\Csv\CsvOptionalBean.cs" /> 50 51 <Compile Include="Sources\Csv\CsvArrayBean.cs" /> 51 52 <Compile Include="Sources\Csv\CsvBeanInfoTest.cs" /> -
framework/trunk/CoreTest/Sources/Csv/CsvBeanReaderTest.cs
r1424 r1504 710 710 711 711 /// <summary> 712 /// 任意のカラムを読み込むテストです。 713 /// </summary> 714 public void TestReadOptionalColumns() 715 { 716 // FIXME 717 } 718 719 /// <summary> 712 720 /// 値の前後のスペースを除去して読み込むテストです。 713 721 /// </summary> -
framework/trunk/CoreTest/Sources/Csv/CsvBeanWriterTest.cs
r1421 r1504 28 28 using System.Globalization; 29 29 using System.IO; 30 using FCSoft.SilverFrost.Framework.Collection; 30 31 using FCSoft.SilverFrost.Framework.Globalization; 31 32 using FCSoft.SilverFrost.Framework.TestResources.Csv; … … 197 198 stringWriter.ToString(), 198 199 Is.EqualTo("\"1\n2\",\"line_1_1\nline_1_2\"\r\n")); 200 } 201 } 202 203 /// <summary> 204 /// 任意のカラムを読み込むテストです。 205 /// </summary> 206 [Test] 207 public void TestWriteOptionalColumns() 208 { 209 using (StringWriter stringWriter = new StringWriter()) 210 { 211 using (CsvBeanWriter<CsvOptionalBean> beanWriter 212 = new CsvBeanWriter<CsvOptionalBean>( 213 stringWriter, 214 new CsvBeanWriterSettings 215 { 216 OptionColumnLabels = new[] 217 { 218 "option-column-1", 219 "option-column-2", 220 }, 221 })) 222 { 223 beanWriter.WriteColumnsLine(new CsvOptionalBean 224 { 225 Label = "line_1", 226 No = 1, 227 Options = new OrderedDictionary<string, string> 228 { 229 { "option-column-1", "option_column_1_line_1" }, 230 { "option-column-2", "option_column_2_line_1" }, 231 } 232 }); 233 } 234 235 Assert.That( 236 stringWriter.ToString(), 237 Is.EqualTo("\"line_1\",\"1\",\"option_column_1_line_1\",\"option_column_2_line_1\"\r\n")); 199 238 } 200 239 }
※ 詳しい使い方は
TracChangeset を参照してください。