我想用 C# 创建一个类,在调用数据库后需要设置一些属性。下面是一个粗略的示例:
- 我想为一些家具物品创建运输类别。
- 在我的运输类的构造函数中,我已经给出了对象的类型(例如椅子)
- 我的运输类需要对象的大小以用于不同的方法
- 数据库中对象的类型和大小之间存在链接,我可以在异步调用后获取该链接
最好的方法是什么?创建该类的代码是否应该事先进行调用?通过 Builder?或者构造函数应该执行异步调用:
protected IProduct? _product;
public IProduct? Product {
get { return _product; }
private set { _product = value; }
}
public double Size? { get; private set; } = null;
public Shipping(IProduct? product) {
Product = product;
InitializeAsync().ConfigureAwait(false);
}
private async Task InitializeAsync() {
if (_product != null) {
Size = await dbService.GetProductSize(_product.ProductReference);
}
}
我认为这不是好事,因为我们无法知道 Size 是否已有效设置。为这种情况创建一个完整的构建器似乎有点过分,但我没有看到一个干净的解决方案可以直接做到这一点。如果对象要更改,则 Shipping 对象无论如何都有责任相应地更新 Size,因此似乎它仍然需要对如何设置 Size 负责。让我知道你的想法!