示例#1
0
 public ResolveResultConverterStrategyTuple(Type tupleType)
     : base(tupleType)
 {
     _componentStrategies = HarshTuple.GetComponentTypes(tupleType)
                            .Select(GetNestedTupleStrategy)
                            .ToImmutableArray();
 }
 private static void AddComponentsFlat(ImmutableArray <Type> .Builder result, Type t)
 {
     if (HarshTuple.IsTupleType(t))
     {
         foreach (var ct in HarshTuple.GetComponentTypes(t))
         {
             AddComponentsFlat(result, ct);
         }
     }
     else if (HarshGrouping.IsGroupingType(t))
     {
         AddComponentsFlat(result, t.GenericTypeArguments[0]);
         AddComponentsFlat(result, t.GenericTypeArguments[1]);
     }
     else
     {
         result.Add(t);
     }
 }
示例#3
0
 public void GetComponentTypes_returns_components(Type t, Type[] expected)
 {
     Assert.Equal(expected, HarshTuple.GetComponentTypes(t));
 }
示例#4
0
 public void GetComponentTypes_fails_for_unconstructed_tuple(Type t)
 {
     Assert.Throws <ArgumentException>(
         () => HarshTuple.GetComponentTypes(t)
         );
 }