वहाँ .net में किसी भी तरह से क्रम, यानी पर एक उदाहरण के लिए संपत्तियों की एक शब्दकोश बाध्य करने के लिए, के रूप में अगर आधार वस्तु वर्ग था है एक संपत्ति की तरह:सी # में कार्यावधि में एक टाइप किया वस्तु को expando गुण जोड़ने
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 कुंजी?
मुझे स्वीकार करना होगा कि मुझे यह पता नहीं था कि यह अस्तित्व में है। –
धन्यवाद आदमी, यह सही है – mcintyre321