是否有.NET任何方式結合性質的字典來在運行時,即,例如,如,如果基對象類有屬性,如:添加expando屬性的類型的對象在運行時,在c#
public IDictionary Items { get; }
我想出了涉及靜態字典和擴展方法
void Main()
{
var x = new object();
x.Props().y = "hello";
}
static class ExpandoExtension {
static IDictionary<object, dynamic> props = new Dictionary<object, dynamic>();
public static dynamic Props(this object key)
{
dynamic o;
if (!props.TryGetValue(key, out o)){
o = new ExpandoObject();
props[key] = o;
}
return o;
}
}
一個解決方案,但這個從得到GC'd作爲道具收集停止對象保持一個參考。實際上,這對我的特殊使用情況來說確實很好,因爲我可以在完成使用它們的特定事件後手動清除道具,但是我想知道,是否有一些巧妙的方法可以將在允許垃圾收集的同時將ExpandoObject轉換爲密鑰?
我必須承認我不知道這個存在。 – 2011-03-05 14:42:45
謝謝你,那是完美的 – mcintyre321 2011-03-05 15:03:29