チェンジセット 1630 (default)
- 日時:
- 2024/01/29 12:37:55 (8ヵ月前)
- 場所:
- framework/trunk
- ファイル:
-
- 1個の追加
- 3個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/CoreLibrary/Sources/Data/SqlTemplateConstants.cs
r1629 r1630 397 397 } 398 398 399 if (!typeInfo.IsPublic) 400 { 401 return; 402 } 403 399 404 // C# の static class の場合、IsAbstract == true && IsSealed == true になっている 400 if (!typeInfo.IsPublic 401 || !typeInfo.IsClass 402 || !typeInfo.IsAbstract 403 || !typeInfo.IsSealed) 404 { 405 return; 406 } 407 408 foreach (FieldInfo fieldInfo in typeInfo.DeclaredFields) 409 { 410 BuildTemplateContents(builder, fieldInfo); 405 if (typeInfo.IsClass 406 && typeInfo.IsAbstract 407 && typeInfo.IsSealed) 408 { 409 foreach (FieldInfo fieldInfo in typeInfo.DeclaredFields) 410 { 411 BuildTemplateContents(builder, fieldInfo); 412 } 413 } 414 415 // 列挙体 416 if (typeInfo.IsEnum) 417 { 418 foreach (Enum enumValue in Enum.GetValues(typeInfo)) 419 { 420 BuildTemplateContents(builder, typeInfo, enumValue); 421 } 411 422 } 412 423 } … … 457 468 builder.AppendLine(); 458 469 } 470 471 /// <summary> 472 /// テンプレートの内容を生成します。 473 /// </summary> 474 /// <param name="builder">文字列ビルダー。</param> 475 /// <param name="typeInfo">型情報。</param> 476 /// <param name="enumValue">列挙型の値。</param> 477 private void BuildTemplateContents(StringBuilder builder, TypeInfo typeInfo, Enum enumValue) 478 { 479 string enumName = enumValue.ToString("G"); 480 481 // 文字列表現 482 if (prefix != null) 483 { 484 builder.Append(prefix); 485 } 486 487 builder.Append(typeInfo.Name); 488 builder.Append('.'); 489 builder.Append(enumName); 490 builder.Append("='"); 491 builder.Append(enumName.Replace("'", "''")); 492 builder.Append('\''); 493 builder.AppendLine(); 494 495 // 数値表現 496 if (prefix != null) 497 { 498 builder.Append(prefix); 499 } 500 501 builder.Append(typeInfo.Name); 502 builder.Append('.'); 503 builder.Append(enumName); 504 builder.Append(";D="); 505 builder.AppendLine(enumValue.ToString("D")); 506 } 459 507 } 460 508 } -
framework/trunk/CoreTest/CoreTest.csproj
r1628 r1630 63 63 <Compile Include="Sources\Csv\CsvRawValueBean.cs" /> 64 64 <Compile Include="Sources\Data\DataConstants.cs" /> 65 <Compile Include="Sources\Data\DataEnum.cs" /> 65 66 <Compile Include="Sources\Data\DbDataOperatorResourceTest.cs" /> 66 67 <Compile Include="Sources\Data\DbDataOperatorSequenceTest.cs" /> -
framework/trunk/CoreTest/Sources/Data/SqlTemplateConstantsTest.cs
r1628 r1630 70 70 Verify(template, "DataConstants.StringConstantField3", "'" + DataConstants.StringConstantField3 + "'"); 71 71 72 Verify(template, "DataEnum.Default", "'" + DataEnum.Default.ToString("G") + "'"); 73 Verify(template, "DataEnum.Default;D", DataEnum.Default.ToString("D")); 74 Verify(template, "DataEnum.Enabled", "'" + DataEnum.Enabled.ToString("G") + "'"); 75 Verify(template, "DataEnum.Enabled;D", DataEnum.Enabled.ToString("D")); 76 Verify(template, "DataEnum.Disabled", "'" + DataEnum.Disabled.ToString("G") + "'"); 77 Verify(template, "DataEnum.Disabled;D", DataEnum.Disabled.ToString("D")); 78 72 79 // static フィールドは対象外 73 80 Assert.That(
※ 詳しい使い方は
TracChangeset を参照してください。