public class XmlConfig : IConfig
{
public string PathOrSourceString { get; set; }
public dynamic Data { get; set; }
}
public interface ITestModel
{
string Name { get; set; }
string DataType { get; set; }
string Data { get; set; }
}
public class TestConfig
{
public ITestModel Model { get; set; }
public List<ITestModel> List { get; set; }
public Dictionary<string, ITestModel> Dict { get; set; }
}
public class TestModel: ITestModel
{
public string Name { get; set; }
public string DataType { get; set; }
public string Data { get; set; }
public List<ITestModel> List { get; set; }
public Dictionary<string, ITestModel> Dict { get; set; }
}
public class ConfigTest
{
public static void PerformanceTest()
{
var xmlconfig = new XmlConfig();
xmlconfig.PathOrSourceString = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs", "test1.Config");
#region list 类,字典测试
var testModel= new TestModel()
{
Name = "1",
DataType = "1",
Data = "1",
List = new List<ITestModel>
{
new TestModel
{
Name = "2",
DataType = "2",
Data = "2",
},
new TestModel
{
Name = "3",
DataType = "3",
Data = "3",
},
},
Dict = new Dictionary<string, ITestModel>
{
{"4", new TestModel
{
Name = "4",
DataType = "4",
Data = "4",
}
},
{"5", new TestModel
{
Name = "5",
DataType = "5",
Data = "5",
}
},
}
};
#endregion
xmlconfig.Data = new TestConfig()
{
Model = testModel,
Dict = new Dictionary<string, ITestModel>()
{
{"1",testModel },
{"2",testModel }
},
List = new List<ITestModel> { testModel,testModel}
};
#region 动态类型,类,list,字典总和测试
xmlconfig.Data = new DynamicDictionary();
xmlconfig.Data.Name = "Test1";
xmlconfig.Data.DataType = "Test1";
xmlconfig.Data.List = new List<TestModel>
{
new TestModel
{
Name = "2",
DataType = "2",
Data = "2",
},
new TestModel
{
Name = "3",
DataType = "3",
Data = "3",
},
};
xmlconfig.Data.Dict = new Dictionary<string, TestModel>
{
{
"4", new TestModel
{
Name = "4",
DataType = "4",
Data = "4",
}
},
{
"5", new TestModel
{
Name = "5",
DataType = "5",
Data = "5",
}
},
};
xmlconfig.Data.Other.Name = "Test1";
xmlconfig.Data.Other.DataType = "Test1";
#endregion
xmlconfig.SaveToFile();
var data = new XmlConfig();
data.PathOrSourceString = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs", "test1.Config");
data.LoadFromFile();
}
<Data Type="dynamic" Classify="