新文章 网摘 文章 随笔 日记

反射创建泛型类实例

                        //反射得到消息体的类型
                        var bodyType = resolveMessageBody.GetType();

                        //反射得到消息体实际值类型
                        var bodyValueType = bodyType.GetGenericArguments();


                        //创建一个完整的消息实例
                        Type t = typeof(Message<>);
                        //var args = t.GetGenericArguments();
                        Type messageType = t.MakeGenericType(bodyValueType);

                        object resolveMessage = Activator.CreateInstance(messageType, head, resolveMessageBody);

https://stackoverflow.com/questions/9140873/how-to-use-activator-to-create-an-instance-of-a-generic-type-and-casting-it-back

posted @ 2020-10-29 10:47  岭南春  阅读(201)  评论(0)    收藏  举报