ArrayModelType.cs 931 B

123456789101112131415161718192021222324252627282930
  1. using FlutterCodeGenerator.Helper;
  2. using System;
  3. namespace FlutterCodeGenerator.ModelTypes
  4. {
  5. internal class ArrayModelType : SimpleModelType
  6. {
  7. public ModelType Child;
  8. public ArrayModelType(Type type, string name) : base(type, name)
  9. {
  10. var arrayTypeName = ParameterType.FullName.Replace("[]", string.Empty);
  11. var arrayType = ParameterType.Assembly.GetType(arrayTypeName);
  12. Child = ModelTypeGenerator.Create(arrayType, "");
  13. }
  14. public override string GetFlutterTypeName(bool isDefault = true, bool isGenericName = false, bool isSingle = false)
  15. {
  16. var parameterTypeName = Child.GetFlutterTypeName();
  17. if (Index > 1)
  18. {
  19. return $"List<{parameterTypeName}{Index}>";
  20. }
  21. else
  22. {
  23. return $"List<{parameterTypeName}>";
  24. }
  25. }
  26. }
  27. }