有谁知道如何将AWS云形成子模板转换为c#对象或自定义类。 我之前使用数据合同对json进行了反序列化,但是我遇到了云形成模板的问题,因为每个资源都以唯一的名称开头,因此我不确定如何处理它。 我的目标是通过将API中的数据和模板中的数据放入一个类并进行比较,将模板与AWS中已有的模板进行比较。 如果有更好的方法,请随时向我发射。 这里是示例云形成模板。
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
namespace TestsUnitairesSaisieHeures
{
[TestClass]
public class TestsSaisieHeures
{
[TestMethod]
public void NumeroSemaineTest()
{
//1 - Initialisation des variables
DateTime DateTest = new DateTime(2016,11,3);
List<int> expected = new List<int>(new int[] { 44, 45, 46, 47, 48 });
List<int> actual;
//2 - Appel de la méthode à tester
actual = SaisieHeures.SaisieHeures.NumeroSemaine(DateTest);
//3 - Vérification du résultat
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
}
[TestMethod]
public void GetWeekDaysOfWeekFromTest()
{
int weekNumberTest = 33;
List<DateTime> expected = new List<DateTime>(new DateTime[] {new DateTime(2016,8,15),new DateTime(2016,8,16),new DateTime(2016,8,17), new DateTime(2016, 8, 18), new DateTime(2016, 8, 19), new DateTime(2016, 8, 20), new DateTime(2016, 8, 21) });
List<DateTime> actual;
actual = SaisieHeures.SaisieHeures.GetWeekDaysOfWeekFrom(weekNumberTest);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
}
[TestMethod]
public void FirstDateOfWeekISO8601Test()
{
int yearTest = 2016;
int weekOfYearTest = 44;
DateTime expected = new DateTime(2016,11,1);
DateTime actual;
actual = SaisieHeures.SaisieHeures.FirstDateOfWeekISO8601(yearTest, weekOfYearTest);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
}
// Pour exécuter du code avant d'exécuter le premier test dans la classe
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
}
// Pour exécuter du code après que tous les tests ont été exécutés dans une classe
[ClassCleanup()] public static void MyClassCleanup()
{
}
// Pour exécuter du code avant d'exécuter chaque test
[TestInitialize()]
public void MyTestInitialize()
{
}
// Pour exécuter du code après que chaque test a été exécuté
[TestCleanup()]
public void MyTestCleanup()
{
}
}
}
答案 0 :(得分:0)
直截了当的方法是将模板的Resources
部分视为字典,其中资源名称是键,其属性是值:
class ResourceProperties
{
public string GroupDescription { get; set; }
}
class Resource
{
public string Type { get; set; }
public ResourceProperties Properties { get; set; }
}
class Parameters
{
public Dictionary<string, Resource> Resources { get; set; }
}
class Template
{
public Parameters Parameters { get; set; }
}
(其他字段很明显)
然后使用
var template = JsonConvert.DeserializeObject<Template>(json);