【问题标题】:How to generate array type using a given type?如何使用给定类型生成数组类型?
【发布时间】:2014-12-16 13:07:31
【问题描述】:

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

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

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

这是我想做的:

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

我应该如何实现GetArrayTypeOf函数?

【问题讨论】:

标签: c# arrays reflection code-generation


【解决方案1】:

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

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

 string itemTypeName = "System.Int32";

 Type itemType = Type.GetType(itemTypeName);

 Console.WriteLine(itemType.MakeArrayType());

【讨论】:

  • 好吧,我认为可能有一种方法可以不创建实例:)
  • 有趣的是我以前没有见过这种方法:D
猜你喜欢
  • 2021-05-03
  • 2017-09-25
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多