如何使用给定类型生成数组类型?

时间:2014-10-21 10:28:18

标签: c# arrays reflection code-generation

我正在研究用C#编写的代码生成器。 此代码生成器读取xml文件并生成.cs文件。 到目前为止,我们假设所有字段都是字符串,这是不正确的,我已经更改了代码,因此它可以根据我们的xml中指定的类型生成一个类型:

<MyField>
   <Name>Name</Name>
   <Type>String</Type>
</MyField>

但是可能有一些字段可以有多个值(多字段字段),这些字段具有列出所有可能选项的另一个属性(例如,选项)。 我想做的是为任何给定类型生成数组类型。因此我可以先处理我的字段,如果有一些字段可选,我可以将它们的类型转换为数组。

这是我想做的事情:

Type fieldType=typeof(string);
Type fieldType=GetArrayTypeof(fieldType); 

我应该如何实现GetArrayTypeOf功能?

1 个答案:

答案 0 :(得分:2)

要从字符串名称中获取类型,您可以使用Type.GetType方法。

要从项目使用Type.MakeArrayType实例方法获取数组类型:

 string itemTypeName = "System.Int32";

 Type itemType = Type.GetType(itemTypeName);

 Console.WriteLine(itemType.MakeArrayType());