基本上,我需要C#中等价于以下JavaScript语法的代码:
我可以帮您翻译IT技术相关的内容。以下是您需要翻译的内容:
var obj = {id: 1};
obj["prop1"] = 100;
obj["prop2"] = 200;
能否在WebAPI控制器操作中动态添加属性到C#对象并将其序列化为JSON?
我的C#对象:
public class MyObject
{
public int Id { get; set; }
public MyChildObject[] Chidren { get; set; }
public int this[string prop]
{
get { return Chidren.Single(x => x.PropertyName == prop).Value; }
}
}
public class MyChildObject
{
public string PropertyName { get; set; }
public int Value { get; set; }
}
我可以帮您翻译IT技术相关的内容。以下是您需要翻译的内容:
我想要向客户返回的内容是:
{
id: 1,
prop1: 100,
prop2: 200
}
这个测试通过了,但显然只是因为属性在运行时被访问。然而,它们并没有被序列化:
[TestMethod]
public void CanAccessDymaicProperties()
{
var dto = new MyObject
{
Id = 1,
Chidren = new[]
{
new MyChildObject { PropertyName = "prop1", Value = 100 },
new MyChildObject { PropertyName = "prop2", Value = 200 },
}
};
Assert.AreEqual(dto["prop1"], 100);
Assert.AreEqual(dto["prop2"], 200);
}
ExpandoObject
;https://msdn.microsoft.com/zh-cn/library/system.dynamic.expandoobject(v=vs.110).aspx - Dmitry Bychenko