引用System.Dynamic名稱空間。
ExpandoObject:代表可在執行階段以動態方式加入和移除其成員的物件。
ExpandoObject可轉型成IDictionary
public static void Main(string[] args)
{
dynamic obj = new ExpandoObject();
//動態加入屬性
obj.Name = "Mike.Lin";
obj.Dept = "業務部";
obj.Salary = 30000;
Console.WriteLine(obj.Name);
Console.WriteLine(obj.Salary);
//使用泛型委派,動態加入方法
obj.Combine = (System.Action)((string x, string y) =>
{
Console.WriteLine(x + "." + y);
});
obj.Combine("John", "Hu");
//ExpandoObject可轉型成IDictionary
var temp = (IDictionary<string, object>) obj;
//檢測成員是否存在
Console.WriteLine(temp.ContainsKey("Combine"));
//移除成員
temp.Remove("Salary");
temp.Remove("Combine");
//檢測成員是否存在
Console.WriteLine(temp.ContainsKey("Combine"));
//轉成JSON字串
var json = JsonConvert.SerializeObject(obj);
Console.WriteLine(json);
}
沒有留言:
張貼留言