यह ज्ञात गतिशील बाध्यकारी issue है।
यहां कुछ काम आसपास हैं।
उपयोग ICollection<dynamic>
बजाय:
void Main()
{
IFoo foo = new Foo();
dynamic a = new System.Dynamic.ExpandoObject();
a.Prop = 10000;
dynamic b = new System.Dynamic.ExpandoObject();
b.Prop = "Some Text";
foo.Bars.Add(a);
foo.Bars.Add(b);
}
public interface IFoo
{
ICollection<dynamic> Bars { get; set; }
}
public class Foo : IFoo
{
public Foo()
{
Bars = new List<dynamic>();
}
public ICollection<dynamic> Bars { get; set; }
}
या सीधे ऊपर List<dynamic>
:
public interface IFoo
{
List<dynamic> Bars { get; set; }
}
public class Foo : IFoo
{
public Foo()
{
Bars = new List<dynamic>();
}
public List<dynamic> Bars { get; set; }
}
या dynamic foo
का उपयोग करें:
void Main()
{
dynamic foo = new Foo();
dynamic a = new System.Dynamic.ExpandoObject();
a.Prop = 10000;
dynamic b = new System.Dynamic.ExpandoObject();
b.Prop = "Some Text";
foo.Bars.Add(a);
foo.Bars.Add(b);
}
या, नहीं गतिशील बाँध add
कर object
कास्ट कर:
void Main()
{
IFoo foo = new Foo();
dynamic a = new System.Dynamic.ExpandoObject();
a.Prop = 10000;
dynamic b = new System.Dynamic.ExpandoObject();
b.Prop = "Some Text";
foo.Bars.Add((object)a);
foo.Bars.Add((object)b);
}
या ActLike & Prototype Builder Syntax (nuget में) के साथ मेरी अचानक इंटरफ़ेस की तरह एक तीसरी पार्टी के ढांचे का उपयोग कर अधिक अर्थपूर्ण हो।
void Main()
{
dynamic New = Builder.New<ExpandoObject>();
IFoo foo = Impromptu.ActLike(
New.Foo(
Bars: New.List(
New.Obj(Prop:10000),
New.Obj(Prop:"Some Text")
)
)
);
}
public interface IFoo
{
IList<dynamic> Bars { get; set; }
}
की [अपवाद नहीं समझा जा सकता जब .net4 में जेनेरिक संग्रह के साथ गतिशील का उपयोग कर]
संभव डुप्लिकेट (http://stackoverflow.com/questions/7996491/cant-understand-the-exception-when- उपयोग-गतिशील-जेनेरिक-संग्रह-इन-ने) –
क्या आप जो अपवाद प्राप्त कर रहे हैं उसे पोस्ट करेंगे? –