【发布时间】:2018-06-08 01:32:17
【问题描述】:
我有一个使用 sdk 1.24 的 dart web 应用程序,并且一直在使用 dson: 0.11.0 为我的对象生成可序列化的类/模型,这些对象被保存到 firestore 数据库。
我喜欢 dson 生成的类让我能够从地图创建 dart 对象,或将 dart 对象序列化为地图以保存在 firebase 中的方式。
话虽如此,dson 生成器需要我的模型类来扩展可序列化的抽象生成类。
我的应用程序开始变得相当大,我正在为无法使用继承和开发类层次结构而苦苦挣扎。
除非我遗漏了一些我自己似乎无法破解的概念,否则我无法弄清楚如何将类继承与 dson 生成器一起使用。
例如,这是我正在尝试做的一个非常简单的示例。
class EmploymentIncome extends Object {
String employerName;
Address employerAddress;
DateTime hireDate;
}
class SalaryIncome extends EmploymentIncome {
double annualSalary;
}
class HourlyIncome extends EmploymentIncome {
double hourlyRate;
double hoursPerWeek;
}
class hourlyPaystub extends HourlyIncome {
double yearToDateHourlyEarnings;
double hoursWorked;
DateTime payDate;
DateTime periodEndingDate;
}
class salaryPaystub extends SalaryIncome {
double yearToDateSalaryEarnings;
DateTime payDate;
DateTime periodEndingDate;
}
问题是,dson 生成器需要我的模型来扩展生成的抽象类,见下文:
@serializable
class EmploymentIncome extends _$EmploymentIncomeSerializable {
class EmploymentIncome extends Object {
String employerName;
Address employerAddress;
DateTime hireDate;
}
显然,现在的问题是,我无法使用另一个可序列化的 dson 类来扩展就业收入。
我是否缺少一个基本概念或技术,可以让我扩展这些类,同时仍保持将飞镖对象与地图转换的能力?
提前感谢您的任何指导!
【问题讨论】:
标签: serialization dart linkedhashmap dartson