我正在尝试以编程方式设置Use in virtual machine creation
和设置。我找到了正确的方法,这是我的代码:Allow public IP creation
Yes
var fragment = new VirtualNetworkFragment(
subnetOverrides: virtualNetwork.Subnets.Select(s =>
new SubnetOverrideFragment(
labSubnetName: s.Key,
resourceId: s.Value.Inner.Id,
useInVmCreationPermission: "Allow",
usePublicIpAddressPermission: "Allow")).ToList());
var vnet = await BaseClientFactory.CreateDevTestLabClient(azureClient)
.VirtualNetworks
.UpdateWithHttpMessagesAsync(dbLab.ResourceGroupName, dbLab.LabId.ToString(), virtualNetworkId, fragment);
不幸的是,代码不起作用,但它也不会抛出任何异常。当我fragment
对变量进行序列化以将其与在 Azure 上手动执行此操作时发送的请求进行比较时,存在细微差别。
以下是使用 NewtonsoftJson 序列化的主体在代码中的外观(我从 Watch 窗口中获取):
唯一的两个变化是我的代码生成了一个请求,allowedSubnets
并且null
(更重要的是,我认为)结构在我的代码生成的方式上略有不同,properties.subnetOverrides
而不是正确的 json 结构。我不确定这是一个错误还是我做错了什么 - 有什么想法吗?