Activator.CreateInstance(string) and Activator.CreateInstance() difference

前端 未结 3 502
借酒劲吻你
借酒劲吻你 2020-12-14 22:39

No, this is not a question about generics.

I have a Factory pattern with several classes with internal constructors (I don\'t want them being instantiated if not thr

3条回答
  •  忘掉有多难
    2020-12-14 23:08

    To get around this, couldnt you just alter your usage as such:

    public class GenericFactory where T : MyAbstractType
    {
        public static T GetInstance()
        {
            return Activator.CreateInstance(typeof(T), true);
        }
    }
    

    Your factory method will still be generic, but the call to the activator will not use the generic overload. But you should still achieve the same results.

提交回复
热议问题