Compact Framework - how do I dynamically create type with no default constructor?

前端 未结 3 1814
悲哀的现实
悲哀的现实 2020-12-20 21:20

I\'m using the .NET CF 3.5. The type I want to create does not have a default constructor so I want to pass a string to an overloaded constructor. How do I do this?

3条回答
  •  [愿得一人]
    2020-12-20 21:29

    See if this works for you (untested):

    Type t = a.GetType("type info here");
    var ctors = t.GetConstructors();
    string s = "Pass me to the ctor of t";
    MyObj o = ctors[0].Invoke(new[] { s }) as MyObj;
    

    If the type has more than one constructor then you may have to do some fancy footwork to find the one that accepts your string parameter.

    Edit: Just tested the code, and it works.

    Edit2: Chris' answer shows the fancy footwork I was talking about! ;-)

提交回复
热议问题