我有一些像这样的代码,我不知道什么类型,直到运行时.
Type type;
Run Code Online (Sandbox Code Playgroud)
我需要一个定义为的列表:
List<type>
Run Code Online (Sandbox Code Playgroud)
我试过了
var listType = typeof(List<>).MakeGenericType(new []{type});
IList list = Activator.CreateInstance(listType));
Run Code Online (Sandbox Code Playgroud)
但它不能很好地工作,因为我需要将此列表传递给XmlSerializer.Serialize方法. 当此列表完全定义List时,它只输出正确的结果
例如:当我进入时
List<String> list = new List<String>()
它输出
<ArrayOfString>...</ArrayOfString>
Run Code Online (Sandbox Code Playgroud)
我进去的时候
IList list = new List<String>()
它会输出
<ArrayOfAnyType>...</ArrayOfAnyType>
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
当我不知道编译时的类型时,如何定义List?