public static Data Create(FClass host, FieldWrap define, ImportExcel excel) { string type = define.OriginalType; if (define.IsRaw) { switch (type) { case Setting.BOOL: return(new FBool(host, define, excel)); case Setting.INT: return(new FInt(host, define, excel)); case Setting.LONG: return(new FLong(host, define, excel)); case Setting.FLOAT: return(new FFloat(host, define, excel)); case Setting.STRING: return(new FString(host, define, excel)); } } else if (define.IsEnum) { return(new FEnum(host, define, excel)); } else if (define.IsClass) { if (!define.IsDynamic) { return(new FClass(host, define, excel)); } string dType = excel.GetString(); ClassWrap cls = ClassWrap.Get(define.FullName); dType = ClassWrap.CorrectType(cls, dType); ClassWrap dynamic = ClassWrap.Get(dType); if (dynamic == null) { excel.Error("多态类型" + dType + "未知"); } if (cls.FullName != dType && !cls.HasChild(dType)) { excel.Error(string.Format("数据类型{0}非{1}子类", dType, cls.FullName)); } var define0 = new FieldWrap(define.Host, define.Name, dType, new string[] { define.FullName }, define.Group); return(new FClass(host, define0, excel)); } else if (define.IsContainer) { if (define.OriginalType == "list") { return(new FList(host, define, excel)); } else if (define.OriginalType == "dict") { return(new FDict(host, define, excel)); } } Util.LogError("未知类型" + type); return(null); }
public FString(FClass host, FieldWrap define, ImportExcel excel) : base(host, define) { Value = excel.GetString(); }