コード例 #1
0
 private static ix SimpleConversion()
 {
     var tableRow = new Dictionary<string, string>
     {
         { "a", "x" },
         { "ax", "" },
         { "b", "12.5" },
         { "bx", "" },
         { "c", "5" },
         { "cx", "" },
         { "d", "true" },
         { "dx", "" },
     };
     return tableRow.AsImportObject<ix>().CreateObject();
 }
コード例 #2
0
 private static ix ConfiguredConversion()
 {
     var tableRow = new Dictionary<string, string>
     {
         { "a", "x" },
         { "au", "" },
         { "av", "s" },
         { "b", "12.5" },
         { "bu", "" },
         { "bv", "foo" },
         { "c", "5" },
         { "cu", "" },
         { "cv", "bar" },
         { "d", "true" },
         { "du", "" },
         { "dv", "maybe" },
         { "e", "bar" },
         { "eu", "n/a" },
         { "ev", "foo" },
     };
     return tableRow.AsImportObject<ix>()
         .WithConfiguration()
             .WithObjectFactory(() => new ix())
             .WithDefaultConverter(t => v => Convert(v, t))
             .WithRequiredField("a", "b", "c", "d")
             .WithSkippedField("av", "bv", "cv", "dv")
             .WithPropertyAlias(x => x.ax, "au", "av")
             .WithPropertyAlias(x => x.bx, "bu", "bv")
             .WithPropertyAlias(x => x.cx, "cu", "cv")
             .WithPropertyAlias(x => x.dx, "du", "dv")
             .WithPropertyAlias(x => x.ex, "eu").WithPropertyAlias(x => x.ez, "ev")
             .WithValueConverter(str => new foo { a = str }) //matches: e, eu, ev
             .WithFieldValueConverter("eu", str => ((str == "n/a") ? null : new foo { a = str })) //matches: eu
             .WithPropertyValueConverter(x => x.ez, str => new foo { a = str.Replace("foo", "...") }) //matches: ev
             .WithDefaultValue(x => x.az, () => boo.y)
             .WithDefaultValue(x => x.bz, () => 52.725)
             .WithDefaultValue(x => x.cz, 24)
             .WithDefaultValue(x => x.dz, false)
             .WithDefaultValue(x => x.f, () => new foo { a = "err" })
         .CreateObject()
     ;
 }