Releases: ldqk/Masuit.Tools
Releases · ldqk/Masuit.Tools
2.6.2.8
2.6.2
2.6.1
让动态类型支持属性访问器和索引器调用
var obj = DynamicFactory.NewObject();
obj.Name = "Masuit";
obj.Age = 18;
obj.MyClass = DynamicFactory.WithObject(new
{
X = 10,
Y = 20,
Z = new List<int> { 1, 2, 3, 4, 5 }
});
Assert.Equal(obj.Name, obj["Name"]);
Assert.Equal(obj["MyClass"]["X"], obj.MyClass.X);
Assert.Equal(obj.MyClass.Z[2], obj["MyClass"]["Z"][2]);
普通类型转换成动态类型
var obj = new
{
Name = "Masuit"
}.ToDynamic();
obj.Age = 18;
obj.MyClass = new
{
X = 10,
Y = 20,
Z = new List<int> { 1, 2, 3, 4, 5 }
}.ToDynamic();
obj.Prop = "test";
_ = obj - "Prop"; // 删除属性
Assert.Equal(obj.Name, obj["Name"]);
Assert.Equal(obj["MyClass"]["X"], obj.MyClass.X);