考慮以下幾點:是可以實現匿名類型的屬性setter方法
var o = new { Foo = "foo", Bar = "bar" };
此實例,因爲像類一樣匿名類型沒有實現制定者只讀:
public class O
{
public String Foo { get; set; }
public String Bar { get; set; }
}
是否可以「打開」匿名實例並允許其屬性被更改?最好用少於創建課程所需的字符數。
我在想也許這可以用Object上的擴展方法來完成; o.SetProperty(o.Foo, "foo!");
,如果你不能在對象的構造中實現聯機的setter。
關於反射的聲明是無效的:以下工作正常:'var obj = new {id = 1,name =「abc」}; obj.GetType()。GetFields(BindingFlags.Instance | BindingFlags.NonPublic).Single(f => f.FieldType == typeof(int))。SetValue(obj,456); Console.WriteLine(obj.id);' – 2010-08-24 11:33:53