【发布时间】:2019-12-30 16:17:20
【问题描述】:
我有一段流畅的 C# 代码:
如果我知道存在多少个磁盘,语法将是:
var tempVM = await azure.VirtualMachines.Define(targetVMName)
.WithRegion(vm.Region)
.WithExistingResourceGroup(targetResourceGroupName)
.WithNewPrimaryNetworkInterface(nicDefinitions[0])
.WithSpecializedOSDisk(disks[0], disks[0].OSType.Value)
.WithSize(vm.Size)
.WithTags(tags)
.WithExistingDataDisk(d[0]) <<<<<<<
.WithExistingDataDisk(d[1]) <<<<<<<
.WithExistingDataDisk(d[2]) <<<<<<<
.WithExistingDataDisk(d[3]) <<<<<<<
.CreateAsync();
我可能要添加 0 个或更多数据磁盘。是否有流畅的语法来支持 0 个或更多磁盘?
【问题讨论】:
-
这取决于库。您在 Azure 中使用什么库?
-
也许重新设计以将数据磁盘作为一个单独的实体在 0 对多的关系上
-
@Robert 我实际上以为是他自己写的。我的坏。
-
Is there a fluent syntax to support 0 or more disks ?-- There doesn't appear to be. -
Fluent API 不是魔术,也不是“好的”实践。有时它们会有所帮助,有时它们会使调试变得痛苦。在许多情况下,它们只是返回原始接口的扩展方法。您可以轻松创建自己的扩展方法,将磁盘的
IEnumerable<>添加到定义中并返回它
标签: c# azure fluent azure-sdk-.net